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

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

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

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

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


当前回答

Android使用一些称为资源的文件,其中存储XML文件的值。

现在,当您对一个XML对象使用@id/时,它试图引用一个已经在值文件中注册的id。另一方面,当你使用@+id/时,它会在值文件中注册一个新的id,就像'+'符号所暗示的那样。

希望这能有所帮助:)。

其他回答

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

The plus sign (+) before the resource type is needed only when you're defining a resource ID for the first time. When you compile the app, the SDK tools use the ID name to create a new resource ID in your project's R.java file that refers to the EditText element. With the resource ID declared once this way, other references to the ID do not need the plus sign. Using the plus sign is necessary only when specifying a new resource ID and not needed for concrete resources such as strings or layouts. See the sidebox for more information about resource objects.

来自:https://developer.android.com/training/basics/firstapp/building-ui.html

很简单:

“@ +……”-创建新的

“@……”-现有链接

来源:https://developer.android.com/guide/topics/resources/layout-resource.html idvalue

Android使用一些称为资源的文件,其中存储XML文件的值。

现在,当您对一个XML对象使用@id/时,它试图引用一个已经在值文件中注册的id。另一方面,当你使用@+id/时,它会在值文件中注册一个新的id,就像'+'符号所暗示的那样。

希望这能有所帮助:)。

简而言之

android:id="@+id/my_button"

+id加号告诉android在资源中添加或创建一个新的id。

android:layout_below="@id/my_button"

它只是帮助引用已经生成的id..