我在java中构建一个项目,假设在应用程序中获取页面的smali代码,并返回此页面布局中的所有按钮。
首先,我为适当的xml文件实现了一个解析器。 解析器搜索页面中的所有按钮。 它运作正常。
但是,我有一个问题,因为我注意到smali代码可以动态添加按钮到页面的布局。我想为smali文件实现解析器,但我认为这样做没有意义。
我有两个想法,但我知道是否可以申请:
1)运行onCreate方法,同时将视图添加到xml文件中。 之后,我在页面布局中有完整的视图。
2)使用UI层次结构,它返回页面中视图的层次结构。但我不知道如何以编程方式使用它并轻松搞定。
谢谢,Yinon
答案 0 :(得分:1)
为您的活动(或片段)ViewGroup运行此按钮,所有按钮都将以mButton为单位。
List<Button> mButtons = new ArrayList();
void getAllButtons(ViewGroup v) {
for (int i = 0; i < v.getChildCount(); i++) {
View child = v.getChildAt(i);
if(child instanceof ViewGroup)
getAllButtons((ViewGroup)child);
else if(child instanceof Button)
mButtons.add((Button)child);
}
}