获取应用页面中的所有按钮

时间:2014-12-19 07:12:47

标签: android xml button layout

我在java中构建一个项目,假设在应用程序中获取页面的smali代码,并返回此页面布局中的所有按钮。

首先,我为适当的xml文件实现了一个解析器。 解析器搜索页面中的所有按钮。 它运作正常。

但是,我有一个问题,因为我注意到smali代码可以动态添加按钮到页面的布局。我想为smali文件实现解析器,但我认为这样做没有意义。

我有两个想法,但我知道是否可以申请:

1)运行onCreate方法,同时将视图添加到xml文件中。 之后,我在页面布局中有完整的视图。

2)使用UI层次结构,它返回页面中视图的层次结构。但我不知道如何以编程方式使用它并轻松搞定。

谢谢,Yinon

1 个答案:

答案 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);
    }
}