在组件包含多层的时候获取子组件可以用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
?
?
?
?