2011-02-24 78 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