Android中“@ id /”和“@ + id /”的区别
@id/和@+id/之间的区别是什么?
 在@+id/加号符号+指示创build一个新的资源名称并添加到R.java文件,但@id/ ? 从ID的文档:当引用一个Android资源ID时,你不需要加号,但必须添加android包名称空间,如下所示: 
 android:id="@android:id/list" 
 但是在Eclipse下面的图片中并没有提供任何types的@android:id/ 。 

是
@id/和@android:id/相同?
 您可以使用@android:id/..来引用已经在Android系统中定义的Android resources ,同时访问您在项目中定义/创build的资源,您可以使用@id/.. 
更多信息
根据你在聊天中的说明,你说你有这样的问题:
如果我们使用
android:id="@id/layout_item_id"它不起作用。 相反,@+id/作品,这里有什么不同? 这是我原来的问题。
 那么,这取决于上下文,当你使用android:id的XML属性,那么你指定一个新的id,并指示分析器(或称之为构build器)在R.java创build一个新的条目R.java ,因此你必须包含一个+号。 
 而在其他情况下,像android:layout_below="@id/myTextView" ,你指的是一个已经创build的id,所以parsing器将它链接到R.java已经创build的id。 
更多信息再次
 正如你在聊天中所说的那样,注意android:layout_below="@id/myTextView"不会识别一个id为myTextView的元素,如果它写在你使用的元素之后的话。 
+符号是将ID添加到资源ID列表的捷径。 否则,你需要把它们放在一个像这样的xml文件中
 <?xml version="1.0" encoding="utf-8"?> <resources> <item name="my_logo" type="id"/> </resources> 
有时候你会在布局文件中看到引用,如:
 <listview id="@+id/android:list"> 
和
 <listview id="@android:id/list"> 
有什么不同?
..我很高兴你问☺
  @+id/foo表示您正在应用程序的名称空间中创build一个名为foo的id。 你可以使用@id/foo来引用它。  @android:id/foo表示您指的是在android命名空间中定义的一个id。 
“+”表示如果该符号不存在,则创build该符号。 您在引用android:symbols时不需要它(不应该使用它),因为这些已经由平台为您定义,您无法在该名称空间中创build自己的名称空间。
 这个命名空间是框架的命名空间。 例如,你需要使用@android:id/list因为这个框架期望find的id ..(该框架只知道android命名空间中的id。) 
完全从这个源复制
简而言之
 android:id="@+id/my_button" 
+ ID加号指示android在资源中添加或创build一个新的ID。
而
 android:layout_below="@id/my_button" 
它只是帮助引用已经生成的ID ..
只有当您第一次定义资源ID时,才需要资源types前的加号(
+)。 编译应用程序时,SDK工具使用ID名称在项目的R.java文件中创build一个引用EditText元素的新资源ID。 使用这种方法声明资源ID时,对ID的其他引用不需要加号。 只有在指定新的资源ID而不需要string或布局等具体资源时,才需要使用加号。 有关资源对象的更多信息,请参阅边框。
来自: https : //developer.android.com/training/basics/firstapp/building-ui.html
  Eclipse有一个错误,有时如果你只是创build了一个新的@+id/.. ,它将不会立即添加到R.java文件中,即使在清理完成项目之后。 解决scheme是重新启动Eclipse。 
这个我认为应该尽快解决,因为它可能(和从经验中)混淆了一些开发者认为他们的语法有问题,并且试图debugging它,即使没有真正的debugging。
@ id /和@android:id /是不一样的。
@ id /引用您的应用程序中的ID,@android:id /引用Android平台中的项目。
Eclipse是错误的。
从开发者指南 :
 android:id="@+id/my_button" 
 string开头的at符号( @ )表示XMLparsing器应parsing并展开IDstring的其余部分,并将其标识为ID资源。 加号( + )表示这是一个新的资源名称,必须创build并添加到我们的资源(在R.java文件中)。  Android框架提供了许多其他ID资源。 引用Android资源ID时,不需要加号,但必须添加android包名称空间,如下所示: 
 android:id="@android:id/empty" 
Android使用一些称为资源的文件,其中存储XML文件的值。
现在,当您使用@ id /作为XML对象时,它试图引用已经在值文件中注册的id。 另一方面,当你使用@ + id /时,它会在值文件中注册一个新的id,正如'+'符号所暗示的那样。
希望这可以帮助 :)。
对于ID值,通常应该使用以下语法forms:“@ + id / name”。 加号+表示这是一个新的资源ID,如果它不存在,aapt工具将在R.java类中创build一个新的资源整数。 例如:
 <TextView android:id="@+id/nameTextbox"/> 
nameTextbox名称现在是附加到此元素的资源ID。 然后,您可以引用在Java中与ID关联的TextView:
 findViewById(R.id.nameTextbox); 
这段代码返回TextView对象。
但是,如果您已经定义了一个ID资源(并且它尚未使用),那么您可以通过排除android:id值中的加号来将该ID应用于View元素。
来源: https : //developer.android.com/guide/topics/resources/layout-resource.html#idvalue
如果视图项执行相同的操作,则可以对任何布局中的每个条目使用@ + id,因为在编译多个@ + id / foo时,R.java文件只创build一个枚举。 所以,例如,如果我在每个页面上执行相同的操作有一个保存button,我在每个布局中使用android:id =“@ + id / button_save”。 R.java文件只有一个button_save条目。
Android中“@ + id /”和“@ id /”之间的区别
第一个用于创build特定UI组件的ID,另一个用于引用特定组件