@+android:id的一些記錄

來源:互聯網
上載者:User

標籤:android   os   使用   java   sp   檔案   代碼   bs   應用   

在修改Settings模組的APN列表時,遇到了類似標題中的一些寫法。

在網上查了一下:

加上android:表示引用android.R.id裡面定義的id資源,如果android.R.id裡面確實有這個id資源,就直接使用它,如果沒有的話就在當前應用的R.id中產生一個標識。

id是控制項的一個基本屬性,這並不代表每個控制項的id都不一樣,其實控制項的id屬性是可以相同的,所有的控制項被載入到記憶體以後就會形成一個控制項樹形結構,當尋找控制項的時候,只返回第一個id匹配的控制項,所以如果一個頁面中有相同id的控制項,比如listview的item,當尋找控制項的時候要從它最鄰近的一個父節點開始尋找,這樣才會命中。

 在布局xml中引用了"@+android:id/***"資源後,想在java代碼中通過findViewById(R.id.***)擷取資源,有些可以擷取到對應控制項的引用,有些卻無法擷取到。

 

關於"@+id/btn"和"@id/btn":

android:id="@+id/btn",表示在R.java檔案裡面新增一個id為btn的控制項索引,最常用的一種聲明控制項id的方式。android:id="@android:id/tabhost",表示引用的是系統已有的ID,在對應的sdk目錄下的ids.xml裡面。一般外部不去調用,是組件內部調用的時候使用。

android:id="@id/btn"  ,表示引用一個已經存在的ID,在R.java裡面的。比如我們自己建了一個ids.xml,裡面聲明了一組id,其中一個是btn;也可能是前面已經通過"@+id/btn"申明了一個id,那麼你就可以這樣引用了。

@+android:id的一些記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.