java– 按ID查找父视图

java– 按ID查找父视图,第1张

概述我有一个复杂的布局,我在这个视图的SwitchLayout上添加了一个标签.此视图中有一个ImageButton.这是这个按钮的一个小地图:LinearLayout–>SwitchLayout–>RelativeLayout–>RelativeLayout–>的ImageButton在某些时候,我想将标签附加到SwitchLayout,但我所拥有的

我有一个复杂的布局,我在这个视图的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查找父视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存