在Layout文件夹中有一个布局文件test.xml,代码如下:
<?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">
<TextView android:id="@+id/textView" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
然后在我的main.xml中,是这样定义的:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include android:id="@+id/textView1" layout="@layout/test" />
<include android:id="@+id/textView2" layout="@layout/test" />
</LinearLayout>
如果我要在Activity中动态的设置这两个TextView,怎么根据它的id值来引用得到这两个TextView,感觉有些冲突?

解决方案 »

  1.   

    <include android:id="@+id/textView1" layout="@layout/test" />
    <include android:id="@+id/textView2" layout="@layout/test" />
    没有用过。你可以定义一些<TextView>吗。通过fineViewById(R.id.textViewName);这样获取。
      

  2.   

    但是当界面中View很多时,用到include的可能性就大了。然后又要得到这些引入的View
      

  3.   

    你先在main的里面找到textView1  然后在textView1里面找textView
    不要直接在main里面找textView
    纯猜想,请尝试
      

  4.   

    嗯,就是先在main的里面找到textView1 然后在textView1里面找textView。但是觉得会有冲突,因为它们引用的id值都是textView
      

  5.   

    你尝试了?
    如果从findViewById这个函数来分析应该可以,因为只是遍历自己的孩子节点
    而且官方文档中也说id不一定唯一
      

  6.   

    谢谢各位,已经解决了,我的代码如下,还是挺简单的,一时糊涂,脑子没转过来:    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main2);
            ViewGroup viewGroup1 = (ViewGroup)findViewById(R.id.textView1);
            TextView textView1 = (TextView) viewGroup1.findViewById(R.id.textView);
            textView1.setText("I am TextView1");
            ViewGroup viewGroup2 = (ViewGroup)findViewById(R.id.textView2);
            TextView textView2 = (TextView) viewGroup2.findViewById(R.id.textView);
            textView2.setText("I am TextView1");
        }