我如何更改TextView的颜色部分?

text = text + CepVizyon.getPhoneCode() + "\n\n" + getText(R.string.currentversion) + CepVizyon.getLicenseText(); activationText.setText(text); myTextView.setText(text); 

我想改变CepVizyon.getPhoneCode()的string的颜色…我该怎么做?

Spannable更灵活:

 String text2 = text + CepVizyon.getPhoneCode() + "\n\n" + getText(R.string.currentversion) + CepVizyon.getLicenseText(); Spannable spannable = new SpannableString(text2); spannable.setSpan(new ForegroundColorSpan(Color.WHITE), text.length(), (text + CepVizyon.getPhoneCode()).length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); myTextView.setText(spannable, TextView.BufferType.SPANNABLE); 
 myTextView.setText(Html.fromHtml(text + "<font color=white>" + CepVizyon.getPhoneCode() + "</font><br><br>" + getText(R.string.currentversion) + CepVizyon.getLicenseText())); 

至于Maneesh的答案,这将工作,但你需要添加和转义颜色属性的引号。

 myTextView.setText(Html.fromHtml(text + "<font color=\"#FFFFFF\">" + CepVizyon.getPhoneCode() + "</font><br><br>" + getText(R.string.currentversion) + CepVizyon.getLicenseText())); 

这对我有好处!

  Spannable spannable = new SpannableString("ABC In-Network DEF"); String str = spannable.toString(); iStart = str.indexOf("In-Network"); iEnd = iStart + 10;/*10 characters = in-network. */ SpannableString ssText = new SpannableString(spannable); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View widget) { //your code at here. } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(true); ds.setColor(getResources().getColor(R.color.green)); } }; ssText.setSpan(clickableSpan, iStart, iEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mTextView.setText(ssText); mTextView.setMovementMethod(LinkMovementMethod.getInstance()); mTextView.setHighlightColor(Color.TRANSPARENT); mTextView.setEnabled(true); 

如果您有需要颜色的静态文本,您可以通过string文件添加它,而无需任何代码:

 <string name="already_have_an_account">Already have an account? <font color='#01C6DB'>Login</font></string> 

然后

 <TextView android:layout_width="wrap_content" android:layout_height="64dp" android:text="@string/already_have_an_account"/> 

结果

在这里输入图像说明

不知道这是哪个api版本,但不适用于迄今为止testing过的api 19,所以可能只有一些最新的api版本支持这个

一种方法是将myTextView拆分为几个单独的TextViews ,其中一个仅用于电话代码。 然后控制这个特定的TextView颜色是非常直接的。