一尘不染

@ + id / android:list和@ + id / list之间有什么区别

java

我想知道@+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>

我也要提一下@+id/android:emptyid

他还扩大了ListActivity课堂。

这是文章出处

还有我在想什么问题:

  1. 我们应该扩展ListActivity吗?也许我想要一个还包含其他视图的活动。
  2. 我们@+id/android:list只是因为扩展而ListActivity使用,或者如果扩展就可以使用相同的约定Activity吗?

谢谢。


阅读 264

收藏
2020-09-08

共1个答案

一尘不染

Android中的资源ID是特定于某个程序包的(这很好,否则,如果您的应用程序同时处理多个程序包,则可能会有很多冲突)。

@+id/list会在您的应用(=您的程序包)中创建一个名为“列表”的资源ID,并为其指定一个唯一ID。在代码中,应为R.id.list

@android:id/list将使用android包中的ID“列表”(在代码中为)android.R.id.list

编辑:需要添加更正David Hedlund指出:正确的参考将是@android:id/list。另外,这+表示您正在定义新的ID-
在引用Android API中定义的内容时,显然不需要此ID。

2020-09-08