android 一次为多个TextView设置文本颜色

llmtgqce  于 2023-03-11  发布在  Android
关注(0)|答案(1)|浏览(161)

有没有办法用一行代码为多个文本视图设置一个文本颜色(在Java/Android中)?

public void MakeAllTxtWhite(){
    TextView[] alltxt = {txt1, txt2, txt3, txt4, txt5,txt6,txt7,txt8, txt9, txt10, txt11, txt12, txt13, txt14, txt15, txt16,
         txt17, txt18, txt19, txt20, txt21, txt22, txt23, txt24, txt25, txt26, txt27, txt28, txt29, txt30, txt31, txt32, txt33, txt34};
    for(TextView i : alltxt){
        i.setTextColor(i.getContext().getColor(R.color.white));
    }
}

我知道可以将所有的txv放在一个列表中并迭代它,但我想知道是否有其他更合适的方法。

js4nwp54

js4nwp541#

我会说你做的很好。没有这样的API来更新多个TextView的文本颜色。但这并不意味着你不能在某个地方提取自己的helper方法并使用它。
如果你愿意的话,你可以避免在数组中添加文本视图。例如,我们可以写

public class ViewHelpers {
    public static void setTextColor(@ColorInt int colorResourceId, TextView... views) {
        for (TextView textView : views) {
            textView.setTextColor(colorResourceId);
        }
    }
}

并在后面的代码中按如下方式使用它:

ViewHelpers.setTextColor(R.color.myColor, textView1, textView2, textView3);

相关问题