@id/
和@+id/
之间有什么区别?
在101中,加号+
指示创建新的资源名称并将其添加到R.java
文件中,但是104呢?来自ID
的文档:当引用Android资源ID
时,您不需要加号,但必须添加Android包命名空间,如下所示:
android:id="@android:id/list"
但在下面的图片中,日食并不意味着任何类型的@android:id/
.
@id/
和@android:id/
是一样的吗?
@id/
和@+id/
之间有什么区别?
在101中,加号+
指示创建新的资源名称并将其添加到R.java
文件中,但是104呢?来自ID
的文档:当引用Android资源ID
时,您不需要加号,但必须添加Android包命名空间,如下所示:
android:id="@android:id/list"
但在下面的图片中,日食并不意味着任何类型的@android:id/
.
@id/
和@android:id/
是一样的吗?
您使用@android:id/..
引用Android resources
,它们已经在Android系统中定义,而要访问您在项目中定义/创建的资源,您可以使用@id/..
More Info个
根据你在聊天中的澄清,你说你有这样的问题:
如果我们用
android:id="@id/layout_item_id"
,它就不起作用了.@+id/
有效,那么这里有什么区别呢?这就是我最初的问题.
这取决于上下文,当您使用XML属性android:id
时,您需要指定一个新id,并指示解析器(或称其为生成器)在R.java
中创建一个新条目,因此必须包含+
号.
而在另一种情况下,比如android:layout_below="@id/myTextView"
,您引用的是一个已经创建的id,所以解析器将其链接到R.java
中已经创建的id.
More Info Again
正如您在聊天中所说,请注意,如果ID为myTextView
的元素写在您正在使用它的元素之后,则android:layout_below="@id/myTextView"
将无法识别该元素.