求助android开发中 如果两个控件的id相同 会怎样

 我来答
huanglenzhi
2015-03-28 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517181
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  相同文件下如果控件id相同是不允许的,eclipse会报错的,如果不是同在一个布局文件中的话就可以,findviewbyid ()找的那个id是你前面用setContentView(R.layout.*)中的xml文件中的id。
CatDragon_IE
2018-03-06
知道答主
回答量:40
采纳率:50%
帮助的人:4.5万
展开全部
在同一个XML中不可以

但是比如用LayoutInflater加载两次拥有ID的相同XML的话,是可以的。

支持楼上观点,其实findViewById不仅仅可以找被setContentView的XML,任何基于ViewGroup的类都有findViewById,在activity中也有一个。

但如果两个不同XML中都有同一个ID的话,还是会报错

很多IDE(包括Eclipse,AndroidStudio,as,还有手机的AIDE)都会将 包名.R.java放在缓存目录/源码目录下,而自带R.java只有一个,且就这一个R还包含id,layout,attrs,menu,anim等各种元素。如果注册相同ID,layout里就会有两个ID一样,但目标不同的参数,Android不知道选哪一个,就会报错。

类似于一个典型的错误
int x=2,y=3;
int z=x+++y;

系统不知道到底是:
先计算x+y再赋值给z,x自加
(即z=(x++)+y;)
还是
先自加y,然后计算x+y,赋值给z
(即z=x+(++y);)
于是就会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
honery23
2015-03-28
知道答主
回答量:2
采纳率:0%
帮助的人:2.2万
展开全部
会报异常,最好不要ID一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式