2016-12-04 7 views
0

私はレイアウトを困惑させるアプリを見つけました。ボタンのリソースIDレイアウトXMLにインクルードディレクティブを使用して

は、一方が他方を含むように、2つのレイアウトの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ファイルのビューのための必須項目ではありません。唯一の2つの必須フィールドはビューの幅と高さです。

レイアウトでは、アクティビティのライフタイムを通して変更する必要がなくても、単にタイトルを表示する必要がある場合を考えてみましょう。このためには、このビューIDを取得する必要はなく、このビューのidを作成するオーバーヘッドは不要です

1

ボタンのリソースIDは何ですか?

は1

を持っていない私は1つが常にあなたがこのことを考えていたのはなぜandroid:id属性

経由でIDを指定すると思っていましたか?ほとんどのレイアウトのルートビューでは、この属性を省略することがよくあります。 (あなたの質問のLinearLayoutを参照してください)

IDを使用してビューを見つけることが決して期待されない場合はandroid:idは必要ありません。 onClickはXMLで定義されているので、実際にボタンを見つける目的はありません。

関連する問題