1、@+id和@id是用来做什么的
Android开发中要得到布局文件中控件的引用,则该控件必须设置id属性。
设置id属性的方式有id=”@+id/xxx”和id=”@id/xxx”
2、@+id和@id的区别
1、android:id=”@+id/xxx”
@+id是在R文件中生成int xxx=value,有两种情况
①R文件中不存在xxx变量,则生成int xxx=value即为控件新建一个id值
②若R文件中已存在xxx变量,则不再新建,直接引用该变量对应的id值
2、android:id=”@id/xxx”是引用现有的资源
也就是说为控件设置id值时用@+id,引用该控件时用@id
3、例子
但是要注意的时,如果要引用的控件的在此之前没有创建过时,直接使用@id是会报错的,因此要写成@+id的形式,下面举个例子
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView1" //请看这一行
android:text="@string/textview2" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textview1" />
上个例子中有注释那一行引用的是下面那个TextView1,TextView1的标识的创建是在他之后创建的,所以这样写会报错,应该将android:layout_below=”@id/textView1” 改成android:layout_below=”@+id/textView1”