@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和@android之间的区别:id
您需要时您要定义自己的ID到一个视图,在这种情况下是section_spinner使用@+id
。并且@android:id
用于需要在框架中将视图的Id设置为android的预定义ID。例如当在ListHost中使用ListActivity,TabWidget/FrameLayout等。
ID自己的ID,ID的Android存在默认的ID在Android平台RES /价值/ ids.xml有一些ID作为下面的API 10
res/values/ids.xml
这些都是在Android
默认IDS<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是由Android“预定义”的。而且为什么要预先定义呢? – steve 2013-04-23 22:22:08
@steve你可以在你的sdk文件夹下找到所有的android api levels /android-sdk/platforms/android-17/data/res/values/ids.xml – 2013-04-24 11:40:22
@id
您指的是您自己在您的项目中定义的id
。
和
@android:id
您指的是由Android框架中定义的ID
字符串开头的符号(@)表示XML解析器应解析并展开ID字符串的其余部分并将其标识为一个ID资源。加号(+)表示这是一个新的资源名称,必须创建并添加到我们的资源中(在R.java文件中)。 Android框架提供了许多其他ID资源。引用Android资源ID时,不需要加号,但必须添加android包名称空间。
@+id/section_spinner
表示您正在应用程序的命名空间中创建一个名为section_spinner的id。 你可以使用@ id/section_spinner来引用它。
@android:id/list
表示您指的是在android命名空间中定义的列表。
'+'表示如果它不存在,则创建该符号。您在引用android:symbols时不需要它(并且不应该使用它),因为这些已经由平台为您定义,并且无论如何您都无法在该名称空间中创建自己的。
id你自己的id,android id默认android有一些id。 – 2012-03-02 08:04:36