您可以findViewById
将当前视图层次结构设置为活动。同一视图树中的视图不能具有相同的 id。(必须是唯一的)。
从文档中引用
任何 View 对象都可能有一个与之关联的整数 ID,以唯一标识树中的 View。编译应用程序时,此 ID 以整数形式引用,但 ID 通常在布局 XML 文件中作为字符串在 id 属性中分配。这是所有 View 对象(由 View 类定义)共有的 XML 属性,您将经常使用它。
http://developer.android.com/guide/topics/ui/declaring-layout.html
例子
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button myButton = (Button) findViewById(R.id.my_button);
}
xml
<Button android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button_text"/>
这里
Button myButton = (Button) findViewById(R.id.my_button);
findViewById
是方法R.id.button
是一个int值。将在 R.java 中有一个自动生成的条目。在当前视图树下的同一个 xml 文件下,您不能拥有具有相同 ID 的视图。
打开你的 R.java 不要修改它的内容。R.java 将如下所示
public static final class id {
public static final int my_button=0x7f080004; // this is the int value which is unique
}
在onCreate
你提到喜欢R.id.my_button
。
您可以在不同的 xml 文件中拥有相同的 id,因为每当您使用findViewById()
获取对布局的一部分的引用时,该方法只会在当前膨胀的布局中查找该视图。(当前视图树/层次结构)。
但最好有唯一的 id 以避免混淆。