在 Android 自己的文档和我继承的应用程序中,我有时会看到带有表单的视图 ID
"@id/android:list"
有时用形式
"@android:id/list"
也就是说,“android:”有时出现在“@”和“id”之间,有时出现在“/”和实际 ID 之间。
这两种形式的含义是什么?它们是等价的吗?
从功能上讲,我相信这两者是等价的,并且都会寻找 android.R.id.list。他们只是用不同的方式说同样的话。
android 中的资源是特定于包的。说 @id/android:list 将在 android 包中查找列表 id。在此版本中,您正在查看的包由 : 指示。在第二个示例@android:id/list 中,您首先定义包,即 android 包,然后告诉它在该包中查找 id/list。
这就像你说@string/whatever 或@id/blah 一样。在这些情况下,系统会在您的应用程序包中查找该资源。通过首先放置 android,您只是告诉它在 android 包中查找这些资源,而不是在您自己的应用程序资源文件夹中。
我认为这篇文章也回答了你的问题。它还有一些更详细的评论,可能会有所帮助。