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