Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 頁面布局時定義控件ID時@id/XX和@+id/xx 的區別

android 頁面布局時定義控件ID時@id/XX和@+id/xx 的區別

編輯:關於Android編程


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文件,打開後,內容如下:


false
false


若在ids.xml中定義了ID,則在layout中可如下定義@id/price_edit,否則@+id/price_edit
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved