只是一個簡單的問題,開發Android應用程序時使用的ids.xml是什麼? 我看到其中包含了Android資源網頁的例子:什麼是ids.xml用於?
<resources>
<item name="snack" type="id"/>
</resources>
什麼會這樣作?
只是一個簡單的問題,開發Android應用程序時使用的ids.xml是什麼? 我看到其中包含了Android資源網頁的例子:什麼是ids.xml用於?
<resources>
<item name="snack" type="id"/>
</resources>
什麼會這樣作?
id.xml通常用於聲明您在佈局中用於視圖的ID。
你可以使用類似
<TextView android:id="@id/snack">
了給定的XML。
ids.xml具有以下優點:所有ids均已聲明,因此編譯器可以識別它們。 如果是這樣的:
<TextView
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBelow="@id/text2"
android:text="...."/>
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="...."/>
可能會導致編譯錯誤,因爲文本2是前refered宣佈
你說得對,我有這個確切的問題。我知道這是舊帖子。在我的情況下,我必須將保存按鈕放在XML文件的頂部,但它會出現在屏幕上的按鈕中,我希望其他視圖能夠說出高於saveButton。我試圖讓保存按鈕在下面說,但這並不適合我。 – malhobayyeb
儘管如此,但它並沒有太多的幫助。在這個例子中 - 你可以把'android:layout_alignBelow =「@ + id/text2」'和第二個'TextView','android:id =「@ id/text2」'。 – ataulm
這是一個有效的解決方法,但在除指定的視圖以外的視圖中聲明id可能不是最好的風格選擇。爲了使語言正確地反映你的意圖,應該在使用它的視圖中聲明id。 –
爲id.xml另一個應用是對於佈局和庫項目。 比方說,你在一個庫中指定的選項泛型列表(對話)佈局
<CheckedTextView android:id="@+id/checked_option_one"...
<CheckedTextView android:id="@+id/checked_option_two"...
...
,並且在一般(對話)片段
optionOneCheck = (CheckedTextView)rootView.findViewById(R.id.checked_option_one);
optionTwoCheck = (CheckedTextView)rootView.findViewById(R.id.checked_option_two);
處理這些意見,如果你刪除任何視圖聲明從主項目中的佈局副本中,您將在運行時得到「無此類字段」錯誤異常。
編譯器不會抱怨,但在運行時該id實際上並不存在/已知。
聲明中id.xml的ID,並使用
<CheckedTextView android:id="@id/checked_option_one"...
...
避免運行時錯誤
如果動態地創建視圖,預定義的ID在ids.xml給人以引用新創建的視圖中的posibility 。在使用setId(id)
方法後,您可以像在XML中定義一樣訪問該視圖。這blog post有一個很好的例子。
在「ids.xml」中定義它的任何好處,而不僅僅是做... android:id =「@ + id/snack」? – pyko
因此,我應該使用android:id =「@ + id/newID」還是在ids.xml文件上聲明newID?什麼是最好的解決方案? –
你也可以使用它''view.setTag(id,value)'來稍後從你的視圖中讀取該標記... – SparK