我有一个复杂的布局,我在这个视图的SwitchLayout上添加了一个标签.
此视图中有一个Imagebutton.
这是这个按钮的一个小地图:
linearLayout – > SwitchLayout – > relativeLayout – > relativeLayout – >的Imagebutton
在某些时候,我想将标签附加到SwitchLayout,但我所拥有的只是对Imagebutton的引用.
我试图寻找一个ID,但似乎androID只是向下搜索,所以
imagebutton.findVIEwByID(R.ID.switchLayout);
不起作用.
看起来我也无法直接从Imagebutton获取指定的标签.
这段代码:
imagebutton.getTag()
返回null
我找到的唯一一个解决方法是在这里,但它很难看:
VIEwSwitcher vIEwSwitcher = (VIEwSwitcher)imagebutton.getParent().getParent().getParent();vIEwSwitcher.getTag();
我想尽可能一周地进行耦合,所以我想知道是否有一种方法可以将标签分配给vIEwSwitcher及其所有的子节点,
或者在父视图中查找VIEwByID.
解决方法:
为什么不保持开关布局的参考?
// In activityswitchLayout = findVIEwByID(R.ID.switchLayout);imagebutton = findVIEwByID(R.ID.imagebutton);
如果您的方法仍然在活动中,您可以直接访问switchLayout,如果没有,您可以将switchLayout设置为imagebutton标记并稍后读取,
imagebutton.setTag(switchLayout);
或者如果你真的需要这样做,你可以递归地做,
public VIEwParent findParentRecursively(VIEw vIEw, int targetID) { if (vIEw.getID() == targetID) { return (VIEwParent)vIEw; } VIEw parent = (VIEw) vIEw.getParent(); if (parent == null) { return null; } return findParentRecursively(parent, targetID);}
总结 以上是内存溢出为你收集整理的java – 按ID查找父视图全部内容,希望文章能够帮你解决java – 按ID查找父视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)