Change text color of one word in a TextView Change text color of one word in a TextView android android

Change text color of one word in a TextView


Easiest way I know is to just use html.

String first = "This word is ";String next = "<font color='#EE0000'>red</font>";t.setText(Html.fromHtml(first + next));

But this will require you to rebuild the TextView when (if?) you want to change the color, which could cause a hassle.


t.setText(first + next, BufferType.SPANNABLE);Spannable s = (Spannable)t.getText();int start = first.length();int end = start + next.length();s.setSpan(new ForegroundColorSpan(0xFFFF0000), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

you have to use spannable this will also allows you to increase some text's size, make it bold etc.... even put in some image.


Use SpannableStringBuilder like this :

SpannableStringBuilder builder = new SpannableStringBuilder();SpannableString str1= new SpannableString("Text1");str1.setSpan(new ForegroundColorSpan(Color.RED), 0, str1.length(), 0);builder.append(str1);SpannableString str2= new SpannableString(appMode.toString());str2.setSpan(new ForegroundColorSpan(Color.GREEN), 0, str2.length(), 0);builder.append(str2);TextView tv = (TextView) view.findViewById(android.R.id.text1);tv.setText( builder, TextView.BufferType.SPANNABLE);