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

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

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

但是在下图中,Eclipse并没有建议使用任何@android:id/。

@id/和@android:id/相同吗?


当前回答

如果视图项执行相同的操作,您可以对任何布局中的每个条目使用@+id,因为在编译多个@+id/foo时,R.java文件只创建一个枚举。例如,如果我在每个页面上都有一个保存按钮,执行相同的操作,我使用android:id="@+id/button_save"在每个布局。R.java文件只有一个button_save条目。

其他回答

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

第一个用于创建特定ui组件的ID,另一个用于引用特定组件

+号是将id添加到资源id列表的快捷方式。否则,您需要将它们保存在这样的xml文件中

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="my_logo" type="id"/>
</resources>

@id/和@android:id/不一样。

@id/引用应用程序中的ID, @android: ID /引用Android平台中的项目。

Eclipse是错误的。

如果视图项执行相同的操作,您可以对任何布局中的每个条目使用@+id,因为在编译多个@+id/foo时,R.java文件只创建一个枚举。例如,如果我在每个页面上都有一个保存按钮,执行相同的操作,我使用android:id="@+id/button_save"在每个布局。R.java文件只有一个button_save条目。

摘自开发者指南:

android:id="@+id/my_button"

The at-symbol (@) at the beginning of the string indicates that the XML parser should parse and expand the rest of the ID string and identify it as an ID resource. The plus-symbol (+) means that this is a new resource name that must be created and added to our resources (in the R.java file). There are a number of other ID resources that are offered by the Android framework. When referencing an Android resource ID, you do not need the plus-symbol, but must add the android package namespace, like so:

android:id=“@android:id/empty”