2017-04-12 26 views

回答

0

您可以使用Html。

for(String word: listString){ 
      if(sentence.contains(word){ 
       sentence = sentence.replace(word,"<font color='red'>"+word+"</font>"); 
      } 
    } 
mTextView.setText(Html.fromHtml(sentence)); 
+0

最终的字符串高亮只在列表中从最后一个项目字。 – roshanthejoker

+0

我的错误。字符串是不可变的类。 – Pr38y

+0

那么我要在每次迭代中保存结果吗? – roshanthejoker

0

我设法用SpannableStringBuilder来做到这一点。

下面的代码:

@Override 
public void renderFinalTranscript(final String transcript, String filler) 

{ 

getActivity().runOnUiThread(() -> { 
    final Pattern p = Pattern.compile(filler); 
    final Matcher matcher = p.matcher(transcript); 

    SpannableStringBuilder sb = new SpannableStringBuilder(transcript); 

    while(matcher.find()){ 
    sb.setSpan(CharacterStyle.wrap(new ForegroundColorSpan(Color.RED)), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 
    transcribeText.append(spanny); 
}); 
} 

我叫for循环的这种方法,并得到想要的结果

相关问题