首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setContentView和EditText

setContentView和EditText
EN

Stack Overflow用户
提问于 2011-12-09 23:42:49
回答 5查看 1.1K关注 0票数 1

我有两个布局xml,无法让第二个布局正常工作。放置在第二个布局上的EditText不能按预期工作。它不接受字符。

这里我漏掉了什么?我应该使用startActivity()来代替吗?

Main.java

代码语言:javascript
复制
public class Main extends Activity implements View.OnClickListener {

    EditText box1, box2;

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        showXml1();
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            String box11 = box1.getText().toString();
            Toast.makeText(this, box11,Toast.LENGTH_SHORT).show();
            showXml2();
            break;
        case R.id.button2:
            String box22 = box2.getText().toString();
            Toast.makeText(this, box22,Toast.LENGTH_SHORT).show();
            showXml1();
            break;
        }
    }

    public void showXml2() {
        setContentView(R.layout.main2);
        box2 = (EditText) findViewById(R.id.editText2);
    }
    public void showXml1() {
        setContentView(R.layout.main);
        box1 = (EditText) findViewById(R.id.editText1);
    }
}

main.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Main1" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1" 
        android:onClick="onClick"
        />

</LinearLayout>

mail2.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Main2" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button2" 
        android:onClick="onClick"
        />
</LinearLayout>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-10 00:12:17

使用具有类似以下结构的元布局xml文件:

meta_main.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
      android:id="@+id/root">
    <include
      layout="@layout/main" />
    <include
       layout="@layout/main2" />
</ViewFlipper>

然后是main.java:

代码语言:javascript
复制
public class Main extends Activity implements View.OnClickListener {

    EditText box1, box2;
    ViewFlipper root;

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.meta_main);
        box1 = (EditText) findViewById(R.id.editText1);
        box2 = (EditText) findViewById(R.id.editText2);
        root = (ViewFlipper) findViewById(R.id.root);
    }

    public void onClick(View v) {
        EditText editText = null;
        switch (v.getId()) {
            case R.id.button1:
                editText = box1;
                root.showNext();
            break;
            case R.id.button2:
                editText = box2;
                root.showPrevious();
            break;
        }
        if(editText != null) {
            Toast.makeText(this, editText.getText(), Toast.LENGTH_SHORT).show();
        }
    }
}

希望它能有所帮助;)

票数 1
EN

Stack Overflow用户

发布于 2011-12-09 23:50:28

我不认为你可以这样加载一个新的布局。

只需将这两个EditTexts放入一个XML中,一个可见,另一个不可见,只需单击一个按钮,反之亦然。

票数 1
EN

Stack Overflow用户

发布于 2011-12-09 23:49:42

作为不同活动的替代方案,您可能希望查看ViewFlipper http://developer.android.com/reference/android/widget/ViewFlipper.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8447922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档