如何避免android layout.xml 布局文件中重名id的错误
来源:互联网 发布:java magic number 编辑:程序博客网 时间:2024/04/30 12:49
在android 开发中,用来描述视图布局的layout.xml文件中,通常会涉及到控件或子布局的变量命名问题,有的时候大家为了提编码速度,可能会造成同名id的问题。那么布局文件中的id是否可以同名呢?
分两种情况:
同一个layout.xml中的id重名
不同layout.xml文件的id重名
情况一
在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效,即后一个Null掉。如
<span style="font-size:14px;"><Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView1" android:layout_alignRight="@+id/textView1" android:layout_marginBottom="58dp" android:layout_marginRight="18dp" android:text="Button1" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button" android:layout_centerVertical="true" android:text="Button2" /></span>
前一个Button有效(即 android:text="Button1" ),后一个无效。
情况二:在不同的Xml 文件中的同名
在同个一个Xml文件的中若同名了,两者都有效的。
当android的工程越来越大。xml文件越来越多时,避免不了两个xml文件中同样的组件使用同样的id名字,gen目录下的R.java文件中,有关id的声明都在id的class中,即public static final class id{};当两个xml文件中同样的组件,比如Button,有可能很多个文件中,都有id=”@+id/Button”,开始以为在Java类中引用会重复的id造成程序的不识别。
后来偶然一次错误发现,只需你setContentView(R.layout.updatemyaddressbook);中的xml文件以及这个xml文件相关的xml文件中的id不重复,在类中使用findViewById(R.id.Button);时,程序是不会不识别的。
这个问题非常地容易理解:因为在Android的框架设计中,每一个控件都隶属于一棵控件树,每个控件都被其父控件所管理与调配,而根控件是一个容器控件,所有的子控件都是构造在这个根控件之上,这样并形成了一个控件树的控件域,在这个控件域中是不允许重名的,超出了这个控件域则这些控件的ID是无效的,也就是说在容器控件中的子控件是不允许重名的,而不在同一容器控件中的两个控件重名也无所谓。建设在实际的开发中还是不要重名的好,那到如何解决这个问题呢?
通过配置eclipse提高这种错误的提示级别就可以了。具体方法如下:
windows->preferrece(首选项)-Android-Link Error Checking将DuplicateIds的提示级别 提高 为Error,以后再出现重名ID的时候,就会提示错误了。
- 如何避免android layout.xml 布局文件中重名id的错误
- Android xml文件中ID重名问题
- android 中不同的Xml中id可以重名吗?
- android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- Android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- 【转载】android 中Xml里面的id重名问题
- Android 中Xml里面的id重名问题
- Android中XML布局文件@+id和@id的区别
- Android中res/layout文件夹里新建布局文件,R中不生成ID的奇葩错误
- Android如何在一个布局(Layout)中获取另一个布局中空间的id
- android layout xml 布局错误
- Android ViewGroup 子布局Layout id重名导致某些设备出现中断问题
- Android布局文件layout.xml的一些属性值
- Android布局文件layout.xml的一些属性值
- Android布局文件layout.xml的一些属性值
- .Net发送邮件
- java jdbc数据库连接代码封装
- retain、strong、weak、assign区别
- leetcode 303 : Range Sum Query - Immutable
- UIWebView加载https网页
- 如何避免android layout.xml 布局文件中重名id的错误
- Ant常用命令简介以及一个最完整的build.xml样例
- Linux服务器搭建SVN及使用
- 3种编程范式间的异同
- “firefox profile cannot be loaded" "server cannot be found"
- 单例模式的七种写法
- C++类的常量对象与常量成员函数
- 手把手教你在ios上开发web应用
- Python练手(一)