-
任何
View对象均可拥有与之关联的整型ID,用于在结构树中对View对象进行唯一标识。编译应用后,系统会以整型形式引用此ID,但在布局XML文件中,系统通常会以字符串的形式在id属性中指定该ID。这是所有View对象共有的XML属性(由View类定义),并且会经常使用该属性。 -
ID字符串名称,在同一布局中必须是唯一的,不能重名,不同布局中可以同名。 -
XML标记内部的ID语法:android:id="@+id/dzm_test"-
命名格式:
/后面的ID必须为字母开头。android:id="@+id/123" × android:id="@+id/123adc" × android:id="@+id/-adc" × android:id="@+id/abc123" √ -
@:字符串开头处的@符号表示XML解析器,解析并展开ID字符串的其余部分,并将其标识为ID资源 -
加号(+):表示这是一个新的资源名称,必须创建该名称并将其添加到资源 (R.java文件中) 内,Android框架还提供许多其他ID资源,引用Android资源ID时,不需要加号,但必须添加android软件包命名空间:android:id="@android:id/empty"添加
android软件包命名空间后,将从android.R资源类而非本地资源类引用ID。 -
通过带
+符号的ID在编译后会添加到R.java (R.txt)文件中,附带:Android Studio 中 R.java 没了,转为 R.txt 文件!
-
-
@+id与@id的区别:@+id:其实就是在R.java (R.txt)文件中新增一个ID名称,如果存在相同的名称会覆盖之前的名称。@id:是直接引用R.java (R.txt)文件中存在的ID资源,如果不存在,则会编译报错。 -
使用案例
<TextView android:id="@+id/dzm" android:layout_width="wrap_content" android:layout_height="wrap_content android:text="Hello World!" android:textSize="24sp"/>// 通过代码获取到组件元素 TextView textview = (TextView)findViewById(R.id.dzm);