@ + id / android:list和@id / android:list有什么不同?

我已经开发了android应用程序,还有一个问题。

如您所知,当我们使用LiveActivity时,我们必须为ListView ID指定@ id / android:list。

但是,当我使用@ + id / android:list而不是@ id / android:list时,它工作正常。

@ + id / android:list和@id / android:list之间有什么不同?

Solutions Collecting From Web of "@ + id / android:list和@id / android:list有什么不同?"

@@+的根本区别在于@ @+表示你需要添加一个新的id, @本身告诉编译器寻找一个已经存在的id。

如您所知,当我们使用LiveActivity时,我们必须为ListView ID指定@ id / android:list。

你不可以。 您必须为ListActivity指定@android:id/list以供ListActivity使用 。

但是,当我使用@ + id / android:list而不是@ id / android:list时,它工作正常。

不,这些会给你编译错误。 冒号在Java字段名中不是有效的字符,因此这些ID是非法的。

切换回合法的Android语法,如果你声明自己的ID(没有android:在值中),第一次你在一个文件中使用ID,你应该有+号。 第二次及以后, +符号不是必须的,尽pipe如果你在那里也不会造成伤害。

回应@ + id / android:list和@ id / android:list?有什么不同? :

看来有两种方法可以参考平台id android.R.id.list@android:id/list@android:id/list @id/android:list 。 ListActivity文档显示了两个(第一个在文本中,第二个在这个例子中),但没有澄清是否有任何区别。

作为ListView的ID的@+id/android:list似乎也工作。 我假设这里发生的是一个android.R.id.list标识符的副本被添加到应用程序自己的ID列表。

在我看来,@ @android:id/list是引用到android.R.id.list最清晰的方法。

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

@+id/list将在您的app (=your package)创build一个名称为"list"的资源ID并为其提供一个唯一的ID。 在代码中,这将是R.id.list

@android:id/list将使用android包中的ID "list" (在代码中,它将是android.R.id.list