2017-05-11 11 views

答えて

1

idが適用されている各Viewの対応する値はR.javaクラスにあり、これはapp/build/generated/source/r/debug/com/your/packageディレクトリにあります。あなたはさまざまなレイアウトで宣言されているどのように多くの異なるView

 


    public final class R { 

     public static final class id { 
      ... 
      public static final int view1 =0x7f0d007e; 
      // other view's ids 
      ... 

     } 
    } 

 

にかかわらず、これらのすべては、彼らがxmlレイアウトに適用される同じIDを持っていると仮定しR.javaクラスで同じ値を持っているでしょう。

View#getId()R.javaクラスの値を返す以外は何もしません。

質問に答えると - はい、getId()は、どのレイアウトが膨らんでいるかに関係なく、同じIDを返します。

0

azizbekian'sさらに、setContentView()を使用して任意のアクティビティでレイアウトを設定すると、そのレイアウトが膨張し、トップレベルのすべてのビューがアクティビティに追加されることを指摘したいと思います。 これは、findViewById()を呼び出すと、アクティビティのレイアウトからビューを返し、他のレイアウトリソースファイル内の同じIDを持つ他のビューは返しません。

view1.getID()に電話すると、view1ではなくview2であることが明らかです。彼らは同じIDを持っていますが、アンドロイドシステムはあなただけがこれを求めているので、view1だけをチェックし、view2はチェックしません。

関連する問題