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