今天在寫代碼時遇到這樣的需求耘婚,就是在同一個textview中需要顯示兩種不同的字體顏色罢浇,想到了使用系統(tǒng)自帶的SpannableString 來實現(xiàn),但是寫完代碼后卻不起作用沐祷,代碼如下:
String optionString = item.getQuestionOption();
String optionNum = "(" + number + "人" + ")";
SpannableString spannableString = new SpannableString(optionNum);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
helper.setText(R.id.tv_name, optionString+spannableString);
后來經(jīng)過反復(fù)測試后得以解決嚷闭,正確代碼:
String optionString = item.getQuestionOption();
String optionNum = "(" + number + "人" + ")";
String option=optionString+optionNum;
SpannableString spannableString = new SpannableString(option);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), optionNum.length(), spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
helper.setText(R.id.tv_name, spannableString);
問題就在最后一行,即當(dāng)使用spannableString時赖临,最后textview.setText(spannableString)的時候胞锰,括號里面只能有spannableString才會起作用,如果是textview.setText(String+spannableString)是不行的兢榨。以前沒有注意過嗅榕,算是一個小坑。