How to search for a word in a string and highlight word in a text view in android?
for each word, you can use:
TextView textView = (TextView)findViewById(R.id.mytextview01);
//use a loop to change text color
Spannable WordtoSpan = new SpannableString("partial colored text");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(WordtoSpan);
If I can understand you have the list of words and you want to find this words in text and highlight them so in this answer you have three input parameter:
- full text.
- yourList
yourTextview to show the result text
String text = "full of your text"; Spannable textSpannable = new SpannableString(text); for (int j =0 ; j<yourList.size() ; j++) { //word of your list String word = String.valueOf(yourList.get(j)); //find index of words for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) { //find the length of word for set color int last = i + word.length(); //set text color with spannable textSpannable.setSpan(new BackgroundColorSpan(Color.parseColor("#0cab8f")), i, last, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } yourTextView.setText(textSpannable);