安卓组件嵌套多层时获取父组件的方法

在组件包含多层的时候获取子组件可以用findViewById(id),而获取父组件可以用getParent(),但是getParent()不能获取爷爷组件,需要写多个getParet().getParent()...。

比如父子关系为 ParentView-Child1->Child2->Me。

其中Me 为操作的对象比如Button,就是自己。ParentView为要找的父对象,Child1为ParentView的子组件,Child2为Child1的子组件,Me 为Child2的子组件。

1.设置Tag:

ParentView pv=new ParentView();
Me me=new Me();
me.setTag(pv);

 

在想要获取父组件的时候 :

ParentView target=(ParentView)me.getTag();

 

2.递归方法

 

findParentRecursively(View view, int targetId) {
    if (view.getId() == targetId) {
        return view;
    }
    View parent = view.getParent();
    if (View == null) {
        return null;
    }
    return findParentRecursively(parent, targetId);
}
 

 

参考地址:http://stackoverflow.com/questions/14190864/find-parent-view-by-id

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值