@ + id/android:list和@ + id/list有什么区别
我想知道@+id/android:list
和@+id/list
有什么区别。我知道最后一个是定期编号分配,但第一个看起来不同。什么使它特别?@ + id/android:list和@ + id/list有什么区别
当我看到它: 我上的ListView,ListAdapter和事物学习这样的,笔者定义如下布局XML文件中的ListView:
<?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="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items"/>
</LinearLayout>
还让我提@+id/android:empty
ID以及。
而且他还延伸ListActivity
类。
而且也什么在我的脑际的问题是:
- 我们应该扩大
ListActivity
?也许我想要一个也包含其他视图的活动。 - 仅仅因为我们扩展
ListActivity
而使用@+id/android:list
,或者如果我们扩展Activity
,我们可以使用相同的约定?
谢谢。
Android中的资源ID特定于包(这很好,否则如果您的应用程序同时处理多个包,会产生很多冲突)。
@+id/list
将在您的应用程序(=您的包裹)中创建名称为“list”的资源ID并为其提供唯一的ID。在代码中,这将是R.id.list
。
@android:id/list
将使用ID“列表”,从包装机器人(其中,在代码中,将android.R.id.list
编辑:需要补充更正大卫Hedlund的指出:正确的提法是@android:id/list
还,+
表示你正在定义一个新的ID--当你参考Android API中定义的东西时,你显然不需要这样做。
我认为你发布的示例代码有一个错字,所以它应该是@android:id/list
(不含+)。从ListActivity javadoc:
自己的视图必须包含一个ListView对象与ID “@android:ID /列表”
@android:id/list
是特定于ListActivity,所以你不需要它,如果要添加一个ListView进入任何其他类型的活动。如果您希望用户不仅仅查看列表,您应该扩展ListActivity。例如,您可以覆盖ListActivity.onListItemClick
以响应列表中项目的点击。
同样,@id/android:empty
(再次,没有+)是ListActivity的特例。这使您可以指定当列表为空时应显示的替代视图。该列表填充时,该视图将不会显示。
,
在XML:@ [包:]布局/文件名
像
android:id="@+id/android:list"
这是指一个列表视图时的标准方法引用listFragment或listActivity
所以文件名是android:list i是对ListView的引用。
导航到res/values/ids.xml
你会发现<item type="id" name="list" />
的ListView是显示滚动项目列表的视图组。列表项自动插入列表使用适配器从数据源或数据库查询等来源提取内容,并将每个项目结果转换为放入列表中的视图。
这是对正在发生的事情的正确描述,但正如高度指出的,语法是`@android:id/list`。 `+'意味着给`R`增加一些东西,而省略加号只意味着引用已经定义的东西。 – 2010-12-04 20:26:19
应该是`@ + id/android:list`还是`@id/android:list`? – Tarik 2010-12-04 20:26:36