今天就跟大家聊聊有關(guān)android中@id和@+id的區(qū)別有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
今天,簡單講講android里關(guān)于@id和@+id的區(qū)別。
之前,自己在布局里無論什么情況都使用@+id,可是后來發(fā)現(xiàn)有些代碼用的是@id,自己不知道這兩者之間有什么區(qū)別。于是就在網(wǎng)上查找資料,最終是解決了問題。這里記錄一下。
Android中的組件需要用一個int類型的值來表示,這個值也就是組件標簽中的id屬性值。id屬性只能接受資源類型的值,也就是必須以@開頭的值,例如,@id/abc、@+id/xyz等。
如果在@后面使用“+”,表示當修改完某個布局文件并保存后,系統(tǒng)會自動在R.java文件中生成相應的int類型變量。變量名就是“/”后面的值,例如,@+id/xyz會在R.java文件中生成int xyz = value,其中value是一個十六進制的數(shù)。如果xyz在R.java中已經(jīng)存在同名的變量,就不再生成新的變量,而該組件會使用這個已存在的變量的值。
也就是說,如果使用@+id/name形式,當R.java中存在名為name變量時,則該組件會使用該變量的值作為標識。如果不存在該變量,則添加一個新的變量,并為該變量賦相應的值(不會重復)。
既然組件的id屬性是一個資源id就可以,那么自然可以設置任何已經(jīng)存在的資源id值,例如,@drawable/icon、@string/ok、@+string/you等。當然,也可以設置android系統(tǒng)中已存在的資源id,例如,樓主提出的@id/android:list,那么這個android是什么意思呢,實際上,這個android就是系統(tǒng)的R類(在R.java文件中)所在的package。我們可以在Java代碼編輯區(qū)輸入android.R.id.,就會列出相應的資源id,例如,也可以設置id屬性值為@id/android:message。
<ListView android:id="@+id/android:message" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
分享題目:android中@id和@+id的區(qū)別有哪些-創(chuàng)新互聯(lián)
標題來源:http://www.chinadenli.net/article30/dcegso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設計、網(wǎng)站維護、電子商務、靜態(tài)網(wǎng)站、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)