2016-12-04 108 views
0

我注意到一個應用程序,它的佈局讓我爲難,來到include指令。資源ID定義使用XML佈局

假設有兩種佈局的XML文件,這樣一個包含其他:

activity_button.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <include layout="@layout/button"/> 

</LinearLayout>%  

button.xml

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="@string/button" 
    android:onClick="sendMessage">  
</Button> 

什麼是按鈕的資源ID?

我以爲人們總是必須通過android:id屬性指定ID,所以我很困惑爲什麼這個佈局有效。我也檢查了R.java ID條目,它似乎是空的。

回答

1

機器人:ID

是不適合的佈局xml文件的視圖必填字段。唯一的兩個必填字段是視圖的寬度和高度。

想想當您希望佈局僅顯示某個標題而無需任何業務的情況下,需要通過活動生命週期來更改它。這需要你不需要獲得這一觀點的ID,並且不需要創建ID的開銷這一觀點

1

按鈕的資源ID是什麼?

不具有一個

我認爲一個總是通過android:id屬性

指定ID你爲什麼這樣認爲?您經常忽略此屬性以查看大多數佈局的根視圖。 (請參閱您的問題的LinearLayout

如果您從不期望使用ID查找視圖,則不需要android:id。由於onClick是在XML中定義的,因此找到該按鈕確實沒有任何用處。