2011-02-24 75 views
11

名和名称标签可有人澄清Android的XML文件android:idandroid:namename变量之间的区别。他们似乎都是参考事物的方式。差异的Android XML文件

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

android:id好像只是用在View s?

我错过了什么,或者会不会更简单一个标签?

回答

5

不,我不相信你错过了什么。尽管这些字段的命名方式不同,但我的理解是,它们都用于识别/引用资源。这尤其意味着在android:id的情况下的GUI元素(视图)和在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等。

+0

感谢乔丹。我认为这已经为我解决了问题。而且它看起来像'android:name'也只是在清单文件中使用。 – Tim 2011-02-25 16:00:57

+0

'name''属性也有其他功能。例如,在片段中,它用于指定要在布局中实例化的类:http://developer.android.com/guide/components/fragments.html – 2013-01-21 04:54:22

+0

这不适用于'android:tag'字段的ATQ可以和'Fragments'一起使用。看起来像':id'是首选的:[View#android:tag](http://developer.android.com/reference/android/view/View.html#attr_android:tag) – jordanpg 2014-07-30 18:22:11