Разница между @id и @android: id

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" /> <Spinner android:id="@+id/section_spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" /> </LinearLayout> 

В чем разница между @android: id и @id в этом случае?

Вам нужно использовать @+id когда вы определяете свой собственный идентификатор для представления, которое в данном случае является section_spinner . И @android:id используется, когда вам нужно установить идентификатор представления в заранее определенный Id в андроиде. Например, при использовании ListActivity, TabWidget / FrameLayout в TabHost и т. Д.

Символ at (@) в начале строки указывает, что синтаксический анализатор XML должен анализировать и расширять остальную строку идентификатора и идентифицировать его как ресурс идентификатора. Символ плюса (+) означает, что это новое имя ресурса, которое должно быть создано и добавлено к нашим ресурсам (в файле R.java). Существует ряд других ресурсов ID, которые предлагаются платформой Android. Когда вы ссылаетесь на идентификатор ресурса Android, вам не нужен символ плюса, но он должен добавить пространство имен пакета android.

@+id/section_spinner означает, что вы создаете идентификатор с именем section_spinner в пространстве имен вашего приложения. Вы можете обратиться к нему с помощью @ id / section_spinner.

@android:id/list означает, что вы ссылаетесь на список, определенный в пространстве имен android.

«+» Означает создание символа, если он еще не существует. Вы не нуждаетесь в этом (и не должны его использовать) при ссылке на android: символы, потому что они уже определены для вас платформой, и вы все равно не можете сделать свой собственный в этом пространстве имен.

Id ваш собственный идентификатор, идентификатор Android по умолчанию является id, присутствующим в android-платформе res / values ​​/ ids.xml, имел некоторые идентификаторы, как показано ниже для API 10

 res/values/ids.xml 

Все они являются идентификаторами по умолчанию из android

 <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="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" /> 
 @id 

Вы ссылаетесь на свой собственный id в своем проекте.

а также

 @android:id 

Вы ссылаетесь на идентификаторы, определенные каркасом Android.