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

标签 android xml button layout

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

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

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

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

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

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

谢谢你,伊农

最佳答案

为您的 Activitie(或 fragment )的 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);
    }
}

关于android - 获取应用页面中的所有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561304/

相关文章:

android - 如何在加载 android 中的第一个 Activity 之前删除白屏?

android - 将pcm编码为aac时,OMX.google.aac.encoder在MediaCodec中不起作用

android - 将 cordova 应用程序部署到连接的设备时无法部署到设备

java - 使用 xpath 在 Java 中解析带有命名空间的 XML

java - pretty-print 。忽略空格

java - 双击 Android 按钮

java - Android如何将类转换为二进制序列

xml - XPath 查询 : why no results?

android - 相对布局未将按钮放置到位

Ghost 按钮的 CSS 对齐方式