可以设置到活动当前视图层次findViewById
。您不能在同一个视图树中拥有相同的视图ID。 (必须是唯一的)。
从文档
任何视图对象可具有与其相关联的整数ID引用,以唯一地识别树内视图。在编译应用程序时,此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文件中使用相同的ids,因为无论何时使用findViewById()
来获取对部分布局的引用,该方法只会在当前充气的布局中查找该视图。 (当前视图树/层次结构)。
但最好有ID唯一,以避免混乱。
够公平的,但他们如何在R.java中存储?他们没有重复 – Ankit
@ ay89 R.java是自动生成的。你有一个条目用于添加在xml中的视图。在gen文件夹下打开'R.java'。你会发现自己的答案。您也可以通过添加一些示例或代码片段来编辑您的问题。 – Raghunandan
@ ay89检查编辑过的帖子。我想它现在回答你的问题。 – Raghunandan