【发布时间】:2016-10-22 11:01:57
【问题描述】:
我正在开发一种 Android 上的打字游戏。它有一个文本视图,其中包含用户必须输入的句子。每次用户必须输入的当前单词都会带有下划线,一旦用户完成一个单词,该单词将根据输入时间改变颜色(例如 >5 秒 = 红色,
我的问题是如何在文本视图中为单词添加下划线和更改颜色,这样当我给新单词下划线时,它也会保持以前的颜色?
目前我每次移动到下一个单词时都会做这样的事情
String texts = myTextView.getText().toString();
// put the next word to be underlined between <u> </u> tags
myTextView.setText(Html.fromHtml(texts));
如您所见,它会在下一个单词下划线,但之前单词的所有颜色都会丢失,但我想保留这些。
感谢您的帮助!
编辑:我的文字已经固定,用户必须输入他们看到的文字。例如,我有一个句子“Sample Sentence Hello”。我希望首先在“Sample”下划线,然后在“Sentence”下划线,“Sample”变为红色或绿色,然后在“Hello”下划线,“Sample”和“Sentence”根据所花费的时间分别变为红色或绿色用户输入每个单词。
【问题讨论】:
-
你应该使用 Spannable 类。 stackoverflow.com/questions/3282940/…
-
@K.Gandhi 谢谢,正如我所见,我必须存储每个单词的起始索引才能使用 Spannable。对吗?
-
是的,你可以这样做。这只是基本的想法......你应该更容易地挖掘并让它工作。