有人可以澄清Android的XML文件中android:id
,android:name
和name
标记之间的区别。它们似乎都是引用事物的方式。
例如,当我在res/values/array.xml
文件中有一个字符串数组时,我使用定义的数组中的name
字段进行访问,但Javadoc将其称为“ID”。
android:id
似乎只是用在View
s?
我是否遗漏了某些内容,或者是否有一个标签更简单?
答案 0 :(得分:5)
android:id
情况下的GUI元素(视图)和name
情况下的静态资源。
为了更深入,我相信android:id
属性仅分配给扩展View的视图和类。这样做是为了使用findViewById
:
Button myButton = (Button) findViewById(R.id.whatever_id_assigned_to_view)
这与仅由name
标识的strings.xml或array.xml等资源不同,例如以下在strings.xml中可能找到的示例:
<string name="string_name">Text Resource Here</string>
并使用...
访问 getResources().getText(R.string.string_name)
我想这些因组织原因而分开。这样生成的Android资源文件(R.java)包含为R.id中的视图指定的ID,R.string中包含的字符串ID,R.array中的数组ID等。