Android的include中,怎么获取不同include中的相同布局中的控件id

比如,我的layout.xml中只有一个ImageButton
在另一个tablelayout.xml中通过include调用layout。xml
但是我想在activity中获取不同include中的imageButton的ID

0

3个回答

系统不会管你在layout中声明了多少个相同ID的View的,通过findViewByID查找控件时,它只关注子View内是否有符合ID的View,其他同ID的View它不会管。

-1

拿不到,相同控件ID,只会拿到一个view。你可以试一下在include时的id取一个新的名字,然后获取到这个新include id view后,再然再在这个view里,
查找你要的ImageButton。还不行的话,可以试一下遍历,所有的view,再对比出你想要的ImageButton来。

2

根据容器类View的findViewByID来获取就行了,tablelayout中的就先找到tablelayout的View,通过这个View的View的findViewByID方法获取,其他的同理。

1
gaochao0103
gaochao0103 回复a63850553: 哥们 你能给发个demo吗 有源码的 谢谢了
4 年多之前 回复
a63850553
a63850553 不会。findViewByID其实是View(一般是ViewGroup,容器View)的方法,用以查找包含在该View内指定ID的子View。当你的layout.xml包含在tablelayout.xml时,ImageButton变成了tablelayout的一个子View,所以你只要找到代表这个tablelayout的View,调用它的findViewByID就行了,同样,比如你有另外一个GridViewLayout.xml也include了这个layout.xml,你只要用代表GridViewLayout的View的findViewByID就行了.tablelayout你是用inflate加载进去的对吧,那个返回值就是View.
4 年多之前 回复
gaochao0103
gaochao0103 用相同控件ID, 比如一个 Button按钮, 会不会在不同的布局页面中获取对象时造成冲突,额 本人新手 可能表达的不是很清楚 ,大概是这个意思 求指教 最好有个demo或者源码 谢谢
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!