Android編程中@id和@+id的區(qū)別分析
本文分析了Android編程中@id和@+id的區(qū)別。分享給大家供大家參考,具體如下:
Android中的組件需要用一個(gè)int類型的值來表示,這個(gè)值就是組件標(biāo)簽中的id屬性值。
id屬性只能接受資源類型的值,也就是必須以@開頭的值,例如,@id/abc、@+id/xyz等。
如果在@后面使用“+”,表示當(dāng)修改完某個(gè)布局文件并保存后,系統(tǒng)會自動在R.java文件中生成相應(yīng)的int類型變量。變量名就是“/”后面的值,例如,@+id/xyz會在R.java文件中生成int xyz = value,其中value是一個(gè)十六進(jìn)制的數(shù)。如果xyz在R.java中已經(jīng)存在同名的變量,就不再生成新的變量,而該組件會使用這個(gè)已存在的變量的值。
既然組件的id屬性是一個(gè)資源id就可以,那么自然可以設(shè)置任何已經(jīng)存在的資源id值,例如,@drawable/icon、@string/ok、@+string/you等。也可以設(shè)置android系統(tǒng)中已存在的資源id,例如@id/android:list,那么,這個(gè)android是什么意思呢,實(shí)際上,這個(gè)android就是系統(tǒng)的R類(在R.java文件中)所在的package。
我們可以在Java代碼編輯區(qū)輸入android.R.id.,就會列出相應(yīng)的資源id,例如,也可以設(shè)置id屬性值為@id/android:message。
還有另外一種方法查看系統(tǒng)中定義的id,進(jìn)入sdk/platforms/android-16/data/res/values目錄,ids.xml文件;
<?xml version="1.0" encoding="utf-8"?> <!-- ** ** Copyright 2007, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <resources> <item type="id" name="background" /> <item type="id" name="checkbox" /> <item type="id" name="content" /> <item type="id" name="empty" /> <item type="id" name="hint" /> <item type="id" name="icon" /> <item type="id" name="icon1" /> <item type="id" name="icon2" /> <item type="id" name="input" /> <item type="id" name="left_icon" /> <item type="id" name="list" /> <item type="id" name="menu" /> <item type="id" name="message" /> <item type="id" name="primary" /> <item type="id" name="progress" /> <item type="id" name="right_icon" /> <item type="id" name="summary" /> <item type="id" name="selectedIcon" /> <item type="id" name="tabcontent" /> <item type="id" name="tabhost" /> <item type="id" name="tabs" /> <item type="id" name="text1" /> <item type="id" name="text2" /> <item type="id" name="title" /> <item type="id" name="title_container" /> <item type="id" name="toggle" /> <item type="id" name="secondaryProgress" /> <item type="id" name="lock_screen" /> <item type="id" name="edit" /> <item type="id" name="widget_frame" /> <item type="id" name="button1" /> <item type="id" name="button2" /> <item type="id" name="button3" /> <item type="id" name="extractArea" /> <item type="id" name="candidatesArea" /> <item type="id" name="inputArea" /> <item type="id" name="inputExtractEditText" /> <item type="id" name="selectAll" /> <item type="id" name="cut" /> <item type="id" name="copy" /> <item type="id" name="paste" /> <item type="id" name="copyUrl" /> <item type="id" name="selectTextMode" /> <item type="id" name="switchInputMethod" /> <item type="id" name="keyboardView" /> <item type="id" name="closeButton" /> <item type="id" name="startSelectingText" /> <item type="id" name="stopSelectingText" /> <item type="id" name="addToDictionary" /> <item type="id" name="accountPreferences" /> <item type="id" name="smallIcon" /> <item type="id" name="custom" /> <item type="id" name="home" /> <item type="id" name="fillInIntent" /> <item type="id" name="rowTypeId" /> <item type="id" name="up" /> <item type="id" name="action_menu_divider" /> <item type="id" name="icon_menu_presenter" /> <item type="id" name="list_menu_presenter" /> <item type="id" name="action_menu_presenter" /> <item type="id" name="overflow_menu_presenter" /> <item type="id" name="popup_submenu_presenter" /> </resources>
若在ids.xml中定義了ID,則在layout中可如下定義@id/price_edit,否則@+id/price_edit;
簡單來講:
@+id 新增一個(gè)資源id
@id和android:id,引用現(xiàn)有的資源id
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用TransitionDrawable實(shí)現(xiàn)多張圖片淡入淡出效果
這篇文章主要為大家詳細(xì)介紹了使用TransitionDrawable實(shí)現(xiàn)多張圖片淡入淡出效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Android Studio實(shí)現(xiàn)注冊頁面跳轉(zhuǎn)登錄頁面的創(chuàng)建
這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)注冊頁面跳轉(zhuǎn)登錄頁面的創(chuàng)建,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android6.0 固定屏幕功能實(shí)現(xiàn)方法及實(shí)例
這篇文章主要介紹了Android6.0 固定屏幕功能實(shí)現(xiàn)方法及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01Retrofit 創(chuàng)建網(wǎng)絡(luò)請求接口實(shí)例過程
這篇文章主要為大家介紹了Retrofit 創(chuàng)建網(wǎng)絡(luò)請求接口實(shí)例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Android FrameWork之SytemServer進(jìn)程fork示例
這篇文章主要為大家介紹了Android FrameWork之SytemServer進(jìn)程fork示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Android 組合控件實(shí)現(xiàn)布局的復(fù)用的方法
本篇文章主要介紹了Android 組合控件實(shí)現(xiàn)布局的復(fù)用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08Android 性能優(yōu)化系列之bitmap圖片優(yōu)化
在日常開發(fā)的APP,大部分時(shí)候需要想用戶展示圖片信息,圖片最終對應(yīng)Android中的Bitmap對象。而對于APP端來說Bitmap又是一個(gè)比較麻煩的問題,主要表現(xiàn)在Bitmap是非常占用內(nèi)存的對象,處理不當(dāng)將導(dǎo)致APP運(yùn)行卡頓甚至出現(xiàn)OOM2021-11-11Android?Studio開發(fā)實(shí)現(xiàn)簡單計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Android?Studio開發(fā)實(shí)現(xiàn)簡單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android ListView與ScrollView沖突的解決方法總結(jié)
這篇文章主要介紹了Android ListView與ScrollView沖突的解決方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04