我的应用里的控件都是动态生成的,有一部分是在其他人提供的JAR包中利用WindowManager添加的,是否有办法遍历这些控件获得相应的信息?
/**
* @note 获取该activity所有view
* */
public List<View> getAllChildViews() {
View view = this.getWindow().getDecorView();
return getAllChildViews(view);
}
private List<View> getAllChildViews(View view) {
List<View> allchildren = new ArrayList<View>();
if (view instanceof ViewGroup) {
ViewGroup vp = (ViewGroup) view;
for (int i = 0; i < vp.getChildCount(); i++) {
View viewchild = vp.getChildAt(i);
allchildren.add(viewchild);
allchildren.addAll(getAllChildViews(viewchild));
}
}
return allchildren;
}
这个方法只能遍历XML布局里的控件,无法获得动态添加的控件
定义一个循环遍历的方法,方法有两个参数,一个是当前的view,另一个是一个Arraylist,只需要在加入arraylist就好了
定义一个循环遍历的方法,方法有两个参数,一个是当前的view,另一个是一个Arraylist,只需要在加入arraylist就好了