【问题标题】:get all buttons in app page获取应用页面中的所有按钮
【发布时间】:2014-12-19 07:12:47
【问题描述】:

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

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

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

我有两个想法,但我不知道它们是否可以应用:

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

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

谢谢,伊农

【问题讨论】:

    标签: android xml button layout


    【解决方案1】:

    为您的活动(或片段)的 ViewGroup 运行此命令,所有按钮都将位于 mButtons 中。

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

    【讨论】:

    • 虽然我的项目是外部的,但我可以使用它吗?我需要反编译apk,并通过所有活动并获取按钮。
    • 您唯一需要的就是所有按钮所在的 ViewGroup。
    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多