我想更改 EditText 中某些文本的颜色。我正在尝试以下代码,但它不起作用。
SpannableStringBuilder ssb=new SpannableStringBuilder(expression);
ForegroundColorSpan fcs=new ForegroundColorSpan(Color.rgb(181,1,1));
ssb.setSpan(fcs,startIndex,endIndex,SpannableStringBuilder.SPAN_INCLUSIVE_INCLUSIVE);
expressionEditText.setText(ssb);
expressionTextView.setText(ssb);
startIndex
并且endIndex
是表达式中需要更改颜色的索引。此代码适用于“expressionTextView”,但不适用于“expressionEditText”。
xml部分:
<EditText
android:id="@+id/expression_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:layout_above="@id/expression_text_view"
android:gravity="bottom|end"
android:includeFontPadding="false"
android:textSize="45sp"
android:background="@android:color/transparent"
android:inputType="text"/>
<TextView
android:id="@+id/expression_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:gravity="right"
android:textSize="50sp"/>
例子:
expression="I want color to be changed";
startIndex=2;
endIndex=5;
在 expressionTextView “wan” 颜色将是指定的颜色。在 expressionEditText 中不会有任何颜色变化。