android:id
有人可以澄清 Android 的 XML 文件中的,android:name
和name
标签之间的区别吗?它们似乎都是引用事物的方式。
例如,当我在res/values/array.xml
文件中有一个字符串数组时,我使用name
已定义数组中的字段访问,但Javadoc将此称为“ID”。
android:id
似乎只是在View
s 中使用?
我是否遗漏了某些东西,或者拥有一个标签会不会更简单?
android:id
有人可以澄清 Android 的 XML 文件中的,android:name
和name
标签之间的区别吗?它们似乎都是引用事物的方式。
例如,当我在res/values/array.xml
文件中有一个字符串数组时,我使用name
已定义数组中的字段访问,但Javadoc将此称为“ID”。
android:id
似乎只是在View
s 中使用?
我是否遗漏了某些东西,或者拥有一个标签会不会更简单?
不,我不相信你会遗漏任何东西。尽管这些字段的名称不同,但我的理解是它们都用于识别/引用资源。这具体指的是 GUI 元素(视图)android:id
和name
.
为了更深入,我相信该android:id
属性仅分配给视图和扩展视图的类。这样做是为了可以使用以下代码以编程方式访问视图findViewById
:
Button myButton = (Button) findViewById(R.id.whatever_id_assigned_to_view)
这与简单地用 标识的 strings.xml 或 array.xml 等资源不同name
,例如以下可能在 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 等。