0

我必须编写一个函数来显示用户键入的字符串,并在文本视图中显示颜色。

例子: ^1Hi ^2 everyone:

  • “Hi” = 红色,因为之前有“^1”
  • “所有人” = 绿色,因为之前有“^2”。

所以我想我必须像这样使用拆分功能:

String txt = myEditText.getText().toString();
String[] splits = txt.split("\\^(\\d+)");

但我不知道如何在“^”之后输入数字。

然后我想用输入的数字分配颜色。

我想我可以使用:

MyTextView.setText(HTML.fromHtml(myTextModifiedWithColor);

因此,如果您有任何想法,将不胜感激。

4

2 回答 2

0

试试这个代码,

  Pattern p = Pattern.compile("^(.*):([\\d\\.]+)/(\\d+)$");
Matcher m = p.matcher( someString );
if (m.find()) {
  m.group(1); // returns the text before the colon
  m.group(2); // returns the double between the colon and the slash
  m.group(3); // returns the integer after the slash
}
于 2013-08-28T08:35:21.313 回答
0

我建议您仅^出于一个简单的原因拆分:您的数组将填充以数字结尾^并以数字开头的字符串。

现在,您可以通过简单地删除最后一个字符(如果它是 a)来轻松处理所有字符串,^因为您不想显示它。此外,您想读取每个字符串的第一个字符,并相应地调整颜色。不要忘记删除该字符。

要修剪你的字符串,我建议使用substring(). 要应用颜色,我建议使用switch声明。

另外,不要忘记您的第一个字符串可能无用或不以数字开头。无论如何,请务必检查所有字符串的一致性。我还强烈建议您使用另一种应用标记的方式。如果你真的想要花哨,你可以使用replace()更复杂的方法RegEx来用适当的标记替换你的标记HTML,然后使用myTextView.setText(Html.fromHtml(yourString));.

于 2013-08-28T08:35:02.090 回答