小编典典

Android中“@id/”和“@+id/”的区别

all

@id/和有什么区别@+id/

@+id/ 加号+指示创建一个新的资源名称并添加到文件中R.java,但是呢 @id/
?从ID: 的文档中引用 Android 资源时ID,不需要加号,但必须添加 android 包命名空间,如下所示:

android:id="@android:id/list"

但在下图中 Eclipse 并没有建议任何类型的@android:id/.

显示@/id 和@+/id 建议的图像

@id/@android:id/一样吗?


阅读 114

收藏
2022-03-14

共1个答案

小编典典

您指的Android resources是已经在 Android
系统中定义的,@android:id/..同时访问您在项目中定义/创建的资源,您使用@id/..

更多信息

根据您在聊天中的说明,您说您遇到了这样的问题:

如果我们使用android:id="@id/layout_item_id"它是行不通的。相反@+id/有效,那么这里有什么区别?那是我最初的问题。

好吧,这取决于上下文,当您使用 的 XML 属性时android:id,您将指定一个新 id,并指示解析器(或称其为构建器)在
中创建一个新条目R.java,因此您必须包括一个+标志。

而在另一种情况下,例如android:layout_below="@id/myTextView",您指的是已经创建的 id,因此解析器将其链接到
中已创建的 id R.java

再次提供更多信息

正如您在聊天中所说,请注意,如果它写在您使用它的元素之后,android:layout_below="@id/myTextView"它将无法识别带有
id的元素。myTextView

2022-03-14