Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改视图中文本的颜色?_Android - Fatal编程技术网

Android 如何更改视图中文本的颜色?

Android 如何更改视图中文本的颜色?,android,Android,我在我的活动中有一些视图,我在运行时膨胀并填充它们 视图本身是一个RelativeLayout,我在运行时向它添加了几个TextView 当选择视图时,我会改变背景的颜色(这很容易) 现在我需要更改视图中所有文本视图的颜色 请问我该怎么做 考虑到我没有对TextView本身的引用,因为它们是在运行时创建的,我也不知道其中有多少 考虑到我没有对文本视图本身的引用 由于您“在运行时添加多个TextView”,因此当然欢迎您“引用TextView本身”。在“在运行时添加”时,将它们添加到某种集合(例如

我在我的活动中有一些视图,我在运行时膨胀并填充它们

视图本身是一个RelativeLayout,我在运行时向它添加了几个TextView

当选择视图时,我会改变背景的颜色(这很容易)

现在我需要更改视图中所有文本视图的颜色

请问我该怎么做

考虑到我没有对TextView本身的引用,因为它们是在运行时创建的,我也不知道其中有多少

考虑到我没有对文本视图本身的引用

由于您“在运行时添加多个TextView”,因此当然欢迎您“引用TextView本身”。在“在运行时添加”时,将它们添加到某种集合(例如,
ArrayList
),然后在集合上迭代以更改其颜色

考虑到我没有对文本视图本身的引用


由于您“在运行时添加多个TextView”,因此当然欢迎您“引用TextView本身”。在“在运行时添加”时,将它们添加到某种集合(例如,
ArrayList
),然后在集合上迭代以更改其颜色。

您可以通过另一种方式执行此操作:

迭代RelativeLayout(您对其有引用)的所有子级:


您可以通过另一种方式执行此操作:

迭代RelativeLayout(您对其有引用)的所有子级:


谢谢你,马克!非常不幸:((这增加了很多复杂性!但如果这是唯一的解决方案…:-)非常感谢Mark!非常不幸:((这增加了很多复杂性!但是如果这是唯一的解决方案…:-)((你不必在你的标题中添加“Android:”,你已经提供了标签。你不必添加“Android:”对于您的标题,您已经提供了标签。
for (int i = 0; i < mRelativeLayout.getChildCount(); i++) {
    if (mRelativeLayout.getChildAt(i) instanceof TextView) {

        // Set text color
        ((TextView)(rl.getChildAt(i))).setTextColor(Color.RED);
    }
}
if (mRelativeLayout.getChildAt(i) instanceof TextView && 
                                !(mRelativeLayout.getChildAt(i) instanceof Button))