Android EditText + set some words in colour


I create EditText boxes dynamically, depending on what is pulled back from the database.


            final EditText textV = new EditText(this);

Is there anyway to set some of the text in the EditText to one colour and another bit to another without using a subString()?
Thanks alot if anybody can help!

Best Solution

Yes, you can have different colors in different places of the text if you are using SpannableString. Example:

SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");  
final EditText textV = new EditText(this);
// make "Lorem" (characters 0 to 5) red  
textV.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);  
textV.setText(text, BufferType.SPANNABLE);

or you can use html code as below::

textV.setText(Html.fromHtml(html text having 1 in red 2 in green and so on));

There's a more complete example here.

Javadoc for SpannableString