Android:使用上下文获取所有TextView

Abh*_*tra 3 android

是否可以在活动中获取所有TextView并在不知道任何ID的情况下更改其值?可能类似于UI automtor工具,它返回UI层次结构但在Java编程级别.我尝试谷歌这个但找不到任何解决方案.

编辑

我想在这里实现的是,我有一个外部库/ SDK来修改所有textView值.所以我计划在每个活动的基础上初始化它,让SDK完成修改所有TextViews值的工作.

Mil*_*nia 6

您可以使用此代码查找TextView布局中的所有内容,只需传递父视图,它将完成剩下的工作:

public static void findViews(View v) {
    try {
        if (v instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) v;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View child = vg.getChildAt(i);
                // recursively call this method 
                findViews(child);
            }
        } else if (v instanceof TextView) {
            //do whatever you want ...
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)