“@+android:id/title”是什么意思?

6
通常情况下,我们应该使用@+id/来定义一个ID,并使用@id来引用一个ID。但今天我在apps/settings/res/layout/preferenc_progress.xml中发现了@+android:id/title
如何理解它并如何使用它呢?

这不就是一个显式的命名空间限定符吗? - trojanfoe
5个回答

4

该功能用于SDK附带的资源。

您可以通过浏览以下路径查看它们:

[Android SDK的路径]/platforms/android-[版本]/data/res

使用android.R.whatever中的android,您只需指定要查找的R文件即可。有关更多信息,请阅读访问平台资源


1
那属于应用程序偏好设置活动屏幕定义。标题和摘要是TextView首选项项的标准Android字段。

0

我从未遇到过这种给id的方法,但理论上这意味着将新的id title 添加到android包中。因此,您可以在代码中像android.R.id.title这样使用它。但我不确定资源编译器是否真的会在android包中创建任何id。我认为它只能与预定义的id一起使用。但是稍后我会给你更精确的答案,当我能够检查它时。

编辑:我已经检查过了,发现了一些差异。首先,如果您使用@+android:id/some_id定义Android的id,该id已经存在于SDK中,则该id不会被定义在您的R.java文件中。如果它在SDK中不存在,则将在R.java中定义,但其值类型不同。其次,如果您尝试将id从其字符串表示形式转换为int值,则Resources.getIdentifier()方法在@+android:id格式的情况下返回0。


0

我认为它做的是相同的事情。只是通过指定命名空间的位置来更正式地表达它。


-1

这意味着它将在您的资源文件中创建一个ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接