恰好碰到一個要在ListView的Item中顯示搜索的關鍵字高亮顯示。已經解決,如今講代碼貼出來。 java
調用的時候傳入2個參數便可,1.要顯示的文本。2.須要高亮的關鍵字。 android
import java.util.regex.Matcher; import java.util.regex.Pattern; import android.graphics.Color; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.CharacterStyle; import android.text.style.ForegroundColorSpan; public class TextUtilTools { /** * 關鍵字高亮顯示 * * @param target 須要高亮的關鍵字 * @param text 須要顯示的文字 * @return spannable 處理完後的結果,記得不要toString(),不然沒有效果 */ public static SpannableStringBuilder highlight(String text, String target) { SpannableStringBuilder spannable = new SpannableStringBuilder(text); CharacterStyle span = null; Pattern p = Pattern.compile(target); Matcher m = p.matcher(text); while (m.find()) { span = new ForegroundColorSpan(Color.RED);// 須要重複! spannable.setSpan(span, m.start(), m.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } return spannable; } // 調用 // SpannableStringBuilder textString = TextUtilTools.highlight(item.getItemName(), KnowledgeActivity.searchKey); // vHolder.tv_itemName_search.setText(textString); }