Я хочу изменить цвет некоторой части текста в 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 не будет никакого изменения цвета.
Edittext
, если вам нужен ввод Span, вам следует использоватьTextWatcher
. Какое именно требование? - person ADM   schedule 08.04.2018