Tar*_*rik 21 java android listview
我想知道@+id/android:list
和之间的区别是什么@+id/list
.我知道最后一个是常规id分配,但第一个看起来不同.是什么让它与众不同?
我在哪里看到它: 我正在研究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>
Run Code Online (Sandbox Code Playgroud)
还让我提一下@+id/android:empty
id.
他还扩展了ListActivity
课程.
还有什么在我脑海中,因为问题是:
ListActivity
吗?也许我想要一个包含其他视图的Activity.@+id/android:list
只是因为我们扩展ListActivity
或者我们可以使用相同的约定,如果我们扩展Activity
?谢谢.
Ebo*_*ike 45
Android中的资源ID特定于程序包(这很好,否则如果您的应用程序同时处理多个程序包,则会遇到很多冲突).
@+id/list
将在您的应用程序(=您的包)中使用名称"list"创建资源ID,并为其指定唯一ID.在代码中,那将是R.id.list
.
@android:id/list
将使用包android中的ID"列表"(在代码中,它将是android.R.id.list
.
编辑:需要添加校正David Hedlund指出:适当的参考将是@android:id/list
.此外,+
表示您正在定义新ID - 当您引用Android API中定义的内容时,您显然不需要这样做.
Eri*_*ine 11
我认为你发布的示例代码有一个拼写错误,所以它应该是@android:id/list
(没有+).从ListActivity javadoc:
你自己的视图必须包含一个ID为"@android:id/list"的ListView对象
@android:id/list
特定于ListActivity,因此如果要将ListView添加到任何其他类型的Activity中,则不需要它.如果您希望用户执行更多操作而不是查看列表,则应扩展ListActivity.例如,您可以覆盖ListActivity.onListItemClick
以响应列表中项目的点击.
类似地,@id/android:empty
(再次,没有+),是ListActivity的特例.这允许您指定在列表为空时应显示的备用视图.填充列表时,不会显示该视图.
归档时间: |
|
查看次数: |
22254 次 |
最近记录: |