根据条件以编程方式更改字符串颜色

邦妮7

是否可以使用 if 条件为 TextView 内的不同文本段设置多种颜色?

这是我的代码:

mColoredText = findViewById(R.id.questionText);
        String mColoredString = "BLACK RED GREEN YELLOW ORANGE BLUE WHITE";
        SpannableStringBuilder builder = new SpannableStringBuilder();

        if(mColoredString.contains("RED")) {
            String red = "RED";
            SpannableString redSpannable = new SpannableString(red);
            redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, red.length(), 0);
            builder.append(redSpannable);
        }

        if(mColoredString.contains("YELLOW")) {
            String yellow = "YELLOW";
            SpannableString whiteSpannable = new SpannableString(yellow);
            whiteSpannable.setSpan(new ForegroundColorSpan(Color.YELLOW), 0, yellow.length(), 0);
            builder.append(whiteSpannable);
        }

        if(mColoredString.contains("BLUE")) {
            String blue = "BLUE";
            SpannableString blueSpannable = new SpannableString(blue);
            blueSpannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, blue.length(), 0);
            builder.append(blueSpannable);
        }

        mColoredText.setText(builder, TextView.BufferType.SPANNABLE);

但最终的结果总是打印: RED YELLOW BLUE 和它的颜色,只有三个文本。

我希望将 BLACK RED GREEN YELLOW ORANGE BLUE WHITE 写在一起,如果没有可跨越的颜色,则适用白色。

安卓团队

试试这个代码..

    textView = findViewById(R.id.tvData);
    String mColoredString = "BLACK RED GREEN YELLOW ORANGE BLUE WHITE";
    SpannableStringBuilder builder = new SpannableStringBuilder();

    String strArray[] = mColoredString.split(" ");
    for (int i = 0; i < strArray.length; i++) {
        if (strArray[i].equals("RED")) {
            SpannableString redSpannable = new SpannableString(strArray[i]);
            redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, strArray[i].length(), 0);
            builder.append(redSpannable);
        } else if (strArray[i].equals("YELLOW")) {
            SpannableString whiteSpannable = new SpannableString(strArray[i]);
            whiteSpannable.setSpan(new ForegroundColorSpan(Color.YELLOW), 0, strArray[i].length(), 0);
            builder.append(whiteSpannable);
        } else if (strArray[i].equals("BLUE")) {
            SpannableString blueSpannable = new SpannableString(strArray[i]);
            blueSpannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, strArray[i].length(), 0);
            builder.append(blueSpannable);
        } else {
            builder.append(strArray[i]);
        }

    }
    textView.setText(builder);

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以编程方式更改资源字符串?

来自分类Dev

根据字符串值更改颜色

来自分类Dev

有没有办法在Android中以编程方式更改子字符串的颜色?

来自分类Dev

根据背景以编程方式更改波纹颜色

来自分类Dev

根据字符串数组更改li元素的颜色

来自分类Dev

根据Java中的值更改字符串颜色

来自分类Dev

以编程方式生成的JSX字符串

来自分类Dev

根据状态以编程方式更改UIButton字体颜色

来自分类Dev

以编程方式更改web.config文件中的连接字符串

来自分类Dev

如何使用字符串资源以编程方式更改 ListView 的条目字段

来自分类Dev

React Native:在文本中查找子字符串,并以编程方式更改样式

来自分类Dev

更改字符串的颜色-Haskell

来自分类Dev

NSAttributedString在字符串末尾更改颜色

来自分类Dev

Android更改字符串的颜色部分

来自分类Dev

更改JavaScript字符串中间的颜色?

来自分类Dev

更改字符串中文本的颜色?

来自分类Dev

比较字符串并更改行的颜色

来自分类Dev

Android更改字符串的颜色部分

来自分类Dev

根据值(字符串)更改“绘图”表中单元格的文本颜色

来自分类Dev

如何根据字符串而不是值来更改Shinydashboard中信息框的颜色?

来自分类Dev

使用Excel VBA根据字符串中的单词更改单词的颜色?

来自分类Dev

以编程方式更改ScrollView的颜色

来自分类Dev

以编程方式更改TextView颜色

来自分类Dev

以编程方式更改ScrollView的颜色

来自分类Dev

以编程方式更改 supportActionBar 的颜色

来自分类Dev

以编程方式删除字符串中的控制字符

来自分类Dev

根据多个条件分割字符串

来自分类Dev

根据字符串条件删除列

来自分类Dev

根据条件返回正确的字符串

Related 相关文章

热门标签

归档