0

Hello Friends i set two different color in single textview like below Output Screen

My code is as below

public static String getAnswers(List<Question> questions) {
    int question = 1;
    StringBuffer sb = new StringBuffer();
    for (Question q : questions){
        String d= "<font color=#292929>" +   sb.append("Q").append(question).append(") ").append(q.getQuestion()).append("? \n")+"</font>";
        String ss="<font color=#ce4e00>"+sb.append("Answer: ").append(q.getAnswer()).append("\n\n")+"</font>";

            AnswersActivity.results.setText(Html.fromHtml(d+ss),TextView.BufferType.SPANNABLE);
        question ++;
    }

    return sb.toString();
}

and is textview i set

        mStringQustion = Utility.getAnswers(currentGame.getQuestions());

and get output like below

Output iMAge

How can i solve it ?

Harshal Kalavadiya
  • 2,412
  • 4
  • 38
  • 71

2 Answers2

2

I have came across the same problem and i fixed it like below

You should use ForegroundColorSpan

String firstString = "Book Title:";
String secondString = "Book Description";
String thirdString = "1.SubTitle";

        SpannableStringBuilder stringBuilder = new SpannableStringBuilder(
                firstString + "\n" + secondString + "\n" + thirdString);
        stringBuilder.setSpan(new RelativeSizeSpan(2.0f), 0,
                firstString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        stringBuilder.setSpan(new StyleSpan(
                android.graphics.Typeface.BOLD_ITALIC), firstString.length(),
                firstString.length() + secondString.length() + 1,
                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        stringBuilder.setSpan(
                new ForegroundColorSpan(Color.rgb(255, 0, 0)),
                firstString.length() + secondString.length() + 1,
                firstString.length() + secondString.length()
                        + thirdString.length() + 2,
                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        AnswersActivity.results.setText.setText(stringBuilder);

enter image description here

You can change it according to your text.

Hope this will help you.

Amit Gupta
  • 8,914
  • 1
  • 25
  • 33
0

Try like this

String d = "&lt;![CDATA[ &lt;font color=#292929>" + sb.append("Q").append(question).append(")").append(q.getQuestion()).append("? \n")+"</font>";  
String ss="<font color=#ce4e00>" + sb.append("Answer:").append(q.getAnswer()).append("\n\n")+"</font>]]>";
UchihaSasuke
  • 363
  • 2
  • 23
haraki
  • 99
  • 3
  • 6