如何Android 获得当前应用中所有控件信息

我的应用里的控件都是动态生成的,有一部分是在其他人提供的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就好了