【发布时间】:2019-04-20 05:26:54
【问题描述】:
我试图通过简单地单击按钮来更改文本颜色,但是当我单击按钮时,它也会更改先前键入的文本颜色。意味着改变整个文本的颜色。当我尝试通过 Spannable 更改颜色时,它会更改所选文本部分的颜色,但不会更改我接下来要输入的文本。有没有一种方法可以单击按钮,它不会更改整个文本颜色,而是更改我接下来键入的颜色。谢谢
这是我只知道的
redtxt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
str.setSpan(new ForegroundColorSpan(Color.parseColor(txtColor)), selStart, selEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setTextColor(Color.parseColor("#d32f2f"));
}
});
【问题讨论】:
-
你能解释更多关于你的要求,并分享你的整个代码,比如
str和txtColor是什么 -
可扩展 str = text.getText(); int selStart = text.getSelectionStart(); int selEnd = text.getSelectionEnd(); ForegroundColorSpan[] styleSpans = text.getText().getSpans(selStart, selEnd, ForegroundColorSpan.class); txtColor 是字符串,它是按钮点击颜色的返回值。
-
什么是
str在这里你能解释一下吗 -
str 是 Spannable 名称。
-
@SShah ,您需要实现 Spannable String builder 和 onChangeText 只需 append spanned string 到 Spannable String builder。