android 頁面配置時定義控制項ID時@id/XX和@+id/xx 的區別

來源:互聯網
上載者:User



Android中的組件需要用一個int類型的值來表示,這個值也就是組件標籤中的id屬性值。id屬性只能接受資源類型的值,也就是必須以@開頭的值,例如,@id/abc、@+id/xyz等。如果在@後面使用“+”,表示當修改完某個布局檔案並儲存後,系統會自動在R.java檔案中產生相應的int類型變數。變數名就是“/”後面的值,例如,@+id/xyz會在R.java檔案中產生int xyz = value,其中value是一個十六進位的數。如果xyz在R.java中已經存在同名的變數,就不再產生新的變數,而該組件會使用這個已存在的變數的值。也就是說,如果使用@+id/name形式,當R.java中存在名為name變數時,則該組件會使用該變數的值作為標識。如果不存在該變數,則添加一個新的變數,並為該變數賦相應的值(不會重複)。    既然組件的id屬性是一個資源id就可以,那麼自然可以設定任何已經存在的資源id值,例如,@drawable/icon、@string/ok、@+string/you等。當然,也可以設定android系統中已存在的資源id,例如,樓主提出的@id/android:list,那麼這個android是什麼意思呢,實際上,這個android就是系統的R類(在R.java檔案中)所在的package。我們可以在Java代碼編輯區輸入android.R.id.,就會列出相應的資源id,例如,也可以設定id屬性值為@id/android:message。還有另外一種方法查看系統中定義的id,進入\platforms\android-1.5\data\res\values目錄,找到ids.xml檔案,開啟後,內容如下:falsefalse若在ids.xml中定義了ID,則在layout中可如下定義@id/price_edit,否則@+id/price_edit

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.