android:id、android:name和android XML文件中的name标记之间的差异

android:id、android:name和android XML文件中的name标记之间的差异,android,android-xml,Android,Android Xml,有人能澄清一下android XML文件中的android:id、android:name和name标记之间的区别吗。它们似乎都是参考事物的方式 例如,当我在res/values/array.xml文件中有一个字符串数组时,我使用定义数组中的name字段进行访问,但将其称为“ID” android:id似乎只在Views中使用 是我遗漏了什么,还是只有一个标签更简单?不,我不相信你遗漏了什么。尽管这些字段的名称不同,但据我所知,它们都用于标识/引用资源。这在android:id的情况下特别指GU

有人能澄清一下android XML文件中的
android:id
android:name
name
标记之间的区别吗。它们似乎都是参考事物的方式

例如,当我在
res/values/array.xml
文件中有一个字符串数组时,我使用定义数组中的
name
字段进行访问,但将其称为“ID”

android:id
似乎只在
View
s中使用


是我遗漏了什么,还是只有一个标签更简单?

不,我不相信你遗漏了什么。尽管这些字段的名称不同,但据我所知,它们都用于标识/引用资源。这在
android:id
的情况下特别指GUI元素(视图),在
name
的情况下指静态资源

更深入地说,我相信
android:id
属性只分配给扩展视图的视图和类。这样做是为了使用
findViewById
从代码中以编程方式访问视图:

Button myButton=(Button)findViewById(R.id.which\u id\u assigned\u to\u view)

这与strings.xml或array.xml等资源不同,后者仅由
名称
标识,例如下面的strings.xml中的示例:

此处的文本资源

并使用

getResources().getText(R.string.string\u name)


我想这是因为组织上的原因而分开的。这样,生成的Android资源文件(R.java)包含为R.id中的视图指定的id、R.string中包含的字符串id、R.array中的数组id等。

感谢您的帮助。我想这已经为我澄清了一切。而且它看起来像是
android:name
也只是在清单文件中使用。“name”属性还有其他功能。例如,在片段中,它用于指定要在布局中实例化的类:这不适用于可与
片段一起使用的
android:tag
字段。看起来首选
:id
:更多关于
:tag
属性的有用性: