標籤:

字元串中關鍵字變色

程序妹紙絮叨叨

之前做里,今天又有這個需求,既然如此,記錄下吧

需求,一串字元串裡面具有高量關鍵詞,例如:你是一個乖寶寶,乖寶寶是關鍵詞,在這句話中,乖寶寶就要做變色處理。


private SpannableString isHasKeyWord(String str) { spannableString= new SpannableString(str); if (!TextUtils.isEmpty(keyword) && str.contains(keyword)) { spannableString = getTextString(spannableString, keyword); } return spannableString;}

private SpannableString getTextString(SpannableString name, String keyWord) { //不分大小寫 Pattern p = Pattern.compile(keyWord, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(name); while (m.find()) { int start = m.start(); int end = m.end(); ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(ContextCompat.getColor(itemView.getContext(), R.color.fala_color)); name.setSpan(foregroundColorSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); name.setSpan(new ClickableSpan() { @Override public void onClick(View arg0) { //設置關鍵詞點擊後相關操作 } @Override public void updateDrawState(TextPaint ds) { /**設置無下劃線**/ ds.setUnderlineText(false); } @Override public CharacterStyle getUnderlying() { return super.getUnderlying(); } }, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } return name;}

推薦閱讀:

如何寫好search term關鍵詞?關鍵詞寫作攻略來啦!
怎麼區分關鍵詞難度

TAG:關鍵詞 | Color |