2017-05-11 17 views

回答

1

每個View應用於它的id在位於app/build/generated/source/r/debug/com/your/package目錄的R.java類中具有相應的值。

 


    public final class R { 

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

     } 
    } 

 

你不管有多少不同View S IN不同的佈局中聲明,所有這些都將在R.java類,假設他們在xml佈局應用相同的ID相同的值。

View#getId()除了返回R.java類的值外什麼也沒做。

回答你的問題 - 是的,getId()將返回相同的ID,無論哪些佈局被誇大。

0

除了azizbekian's回答我還想指出,當您在使用setContentView()的任何活動中設置佈局時,該佈局會變得虛高,因此所有頂層視圖都會添加到該活動中。 這就是當您撥打findViewById()時,它會從您的活動佈局中返回視圖,而不是在任何其他佈局資源文件中具有相同標識的任何其他視圖。

所以,很明顯,當你打電話給view1.getID()它會返回view1 ID而不是view2。儘管它們具有相同的ID,但是Android系統將僅檢查view1而不檢查view2,因爲您只需要這樣做。

相關問題