在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,感觉有些冲突?
<?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,感觉有些冲突?
<include android:id="@+id/textView2" layout="@layout/test" />
没有用过。你可以定义一些<TextView>吗。通过fineViewById(R.id.textViewName);这样获取。
不要直接在main里面找textView
纯猜想,请尝试
如果从findViewById这个函数来分析应该可以,因为只是遍历自己的孩子节点
而且官方文档中也说id不一定唯一
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");
}