如何更换方括号和之间的颜色?

时间:2015-07-28 10:36:31

标签: android

这里的例子:“[ashish]中的[我想要的数据] [某些[字符串]”

我希望得到蓝色的字符串,在“[”蓝色“]”之间,并将[(开始)(关闭)]替换为空格。喜欢facebook标记声明。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

    private SpannableString makeBluish(String text)
{
    String temp = text;
    Pattern pattern = Pattern.compile("\\[([\\sa-zA-Z]+)\\]");
    Matcher matcher = pattern.matcher(text);
    while (matcher.find())
    {
        temp = temp.replace(matcher.group(0), (matcher.group(1)));
    }

    SpannableString linkedString = new SpannableString(temp);
    matcher = pattern.matcher(text);
    while (matcher.find())
    {

        final String token = matcher.group(1);

        int index = temp.indexOf(token);

        linkedString.setSpan(new ForegroundColorSpan(Color.BLUE), index, index + token.length(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
    }
    return linkedString;
}

textString.setText(makeBluish("some [string] with [the data i want] inside [ashish]"));

此处textString是TextView。