我想在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&#34; wan&#34;颜色将是指定的颜色。 在expressionEditText中,不会有任何颜色变化。
答案 0 :(得分:0)
这很简单。
正如我之前在question回答的那样。
您可以通过以下代码实现此目的,我总是使用它。我试着让这个方法尽可能简单。您必须在下面的方法中仅传递<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<span class="hastooltip">
<div id="first-div" onclick="alert('a')">foo</div>
<span class="tooltip">1</span>
</span>
<span class="hastooltip">
<div id="second-div" onclick="alert('b')">bar</div>
<span class="tooltip">2</span>
</span>
<span class="hastooltip">
<div id="third-div" onclick="alert('c')">baz</div>
<span class="tooltip">3</span>
</span>
和Editext
。
如果您需要可点击的范围,可以转到我的answer。如果您还需要TextWatcher,请随时提出评论。
TextToHighLight