Android----xml文件中的控件的id设置

简介:

    Android开放中要想得到布局文件中控件的引用,该控件必须设置id属性,这两有两种方式设置id:(1)@+id/xxxx;(2)@id/xxxx;下面做个简单的介绍。

  1. @+id/xxx:如果R文件中没有该id则创建;

注意:一个xml文件中不能出现两个以该形式设置同一id的两个控件(include标签例外);

示例1 正确的使用:

1
2
3
4
5
< TextView
     android:id = "@+id/mytv"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello world" />

示例2 错误(两个id相同):此时系统会提醒报错

1
2
3
4
5
6
7
8
9
10
< TextView
     android:id = "@+id/mytv"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello world" />
< TextView
     android:id = "@+id/mytv"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello world" />

示例3 允许以下用法,但是该id指向的是include标签,之后的linearLayout设置id的操作无意义:

1
2
3
4
5
6
7
8
9
10
< include
     android:id = "@+id/include1"
     layout = "@layout/my"
     android:layout_width = "50dp"
     android:layout_height = "50dp" />
< LinearLayout
     android:id = "@+id/include1"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:orientation = "horizontal" />

如果将include标签与LinearLayout交换位置则会报错。

示例 4 允许以下用法,但是该id指向TextView,之后的include标签和LinearLayout设置id无意义:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<TextView
     android:id= "@+id/mytv"
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content"
     android:text= "hello world" />
<include
     android:id= "@id/mytv"
     layout= "@layout/my"
     android:layout_width= "50dp"
     android:layout_height= "50dp" />
<LinearLayout
     android:id= "@id/mytv"
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content"
     android:orientation= "horizontal" />

如果将TextView的位置下移,运行会出错。如果include中引用的布局存在与TextView相同的id设置,不会报错但是无意义。

2.@id/xxxx:引用ids.xml中相应的id,与@+id/xxx不同,一旦向ids.xml文件中添加一个id在R.java文件中会生成一个相应的id,无论是否有控件使用该id。

使用示例:

(1)创建ids.xml

1
2
3
4
5
6
7
8
9
10
< resources >
     < item  name = "hello"  type = "id"  />
     < item  name = "hello2"  type = "id"  />
     < item  name = "hello3"  type = "id"  />
     < item  name = "hello4"  type = "id"  />
     < item  name = "hello5"  type = "id"  />
     < item  name = "hello6"  type = "id"  />
     < item  name = "hello7"  type = "id"  />
     < item  name = "hello8"  type = "id"  />
</ resources >

(2)使用id

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< TextView
     android:id = "@id/hello"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello 1"  />
 
< TextView
     android:id = "@id/hello"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello 2"  />
 
< TextView
     android:id = "@id/hello"
     android:layout_width = "wrap_content"
     android:layout_height = "wrap_content"
     android:text = "hello 3"  />

多个控件可以以同样的方式设置统一id,但是该id只属于最先使用该id的控件。











本文转自wauoen51CTO博客,原文链接: http://blog.51cto.com/7183397/1847317,如需转载请自行联系原作者


相关文章
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
68 1
|
2月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
24天前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
25 2
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
93 8
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
27 3
|
2月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
41 0
|
2月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
141 0
|
3月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
54 3
|
2月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
110 0
|
2月前
|
XML 存储 Web App开发
查看 XML 文件
查看 XML 文件