java - 通过具有 Activity 实例的类型(类)查找 View

标签 java android

package net.example.view;
class StatusBar extends View { ... }

我在布局中使用它,如下所示:

<net.example.view.StatusBar .../>

我必须通过它的类型(类)找到它,我的意思是:

myActivityInstance.findViewsByClass(StatusBar.class) // returns View[]

这可能吗?如果不是,那么在不必使用 findViewById() 的情况下查找元素的更好方法是什么?

谢谢。

最佳答案

如果您无法使用 id 并且您的内容 View 是某种 ViewGroup,您可以迭代 subview 。

ViewGroup vg = (ViewGroup) activity.getContentView();
for(int i=0; i<vg.getChildCount(); i++) {
    View v = vg.getChildAt(i);
    if(v instanceof StatusBar) {
        // do something interesting.
    }
}

此外,如果您知 Prop 体索引,则可以直接调用 getChildAt(index)

关于java - 通过具有 Activity 实例的类型(类)查找 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554103/

相关文章:

android - 在 Android 中混合 cordova 和 native Activity

android - 升级到 Android 插件 3.0 后 Gradle 构建失败

android - 不活动,与服务断开连接 - 使用 Android Firebase

java - 包层次结构如何包含另一个包类

java - ConcurrentHashMap 文档说明

java - 错误更改系统找不到指定的文件

android - `flutter doctor`期间 flutter 崩溃

java - 链接其他实体的实体的 spring 注释

java - 双链表困惑

android - 使用 OpenCV 检测台球