android 中Xml里面的id重名问题
2014-07-31 14:38
148 查看
情况一:同个一个Xml文件中的同名
在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效
情况二:在不同的Xml 文件中的同名
在不同Xml文件的Id若同名了,两者都有效的。
当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是无效的,也就是说在容器控件中的子控件是不允许重名的,而不在同一容器控件中的两个控件重名也无所 谓。
在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效
情况二:在不同的Xml 文件中的同名
在不同Xml文件的Id若同名了,两者都有效的。
当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是无效的,也就是说在容器控件中的子控件是不允许重名的,而不在同一容器控件中的两个控件重名也无所 谓。
相关文章推荐
- 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项目打包过程中因为id重名导致的无法打包的问题
- 注意android xml里面的id和值得区别
- Android中的xml或者drawable下面的资源无法在R.java中生成id的问题--2014年12月3日
- android 中不同的Xml中id可以重名吗?
- 如何避免android layout.xml 布局文件中重名id的错误
- Android ViewGroup 子布局Layout id重名导致某些设备出现中断问题
- 解决 warning: found plain 'id' attribute; did you mean the new 'android:id' name? 问题
- 关于Android开发中图片资源文件夹drawable中图片与资源ID号出现对不上的问题
- Android httpclient接收xml乱码问题解决方法
- JQuery中元素id名和变量名重名出现的问题
- Android编译没有找到AndroidManifest.xml问题解决
- android联系人重名,导致共用contactId的解决办法