gpt4 book ai didi

android - 在 Android Edittext 中为特定文本设置文本颜色

转载 作者:搜寻专家 更新时间:2023-11-01 08:57:21 25 4
gpt4 key购买 nike

如果用户键入一个 String 并且它包含 @ 我想将文本的颜色更改为红色。我曾尝试使用 textwatcher,但出现堆栈溢出错误。我只想在 @ 开头时更改颜色。代码如下

topic.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before,
int count) {

}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {

}

public void afterTextChanged(Editable s) {

if (s.toString().matches("(@\\w+)")) {
topic.setText(Html.fromHtml(s.toString().replaceAll(
"(@\\w+)", "<font color='#ffff0000'>$1</font>")));
}


}
});

最佳答案

在设置新文本以编辑文本之前,您必须删除文本观察器。试试这段代码

           private TextWatcher textWatcher = new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {

}

@Override
public void afterTextChanged(Editable s) {
editText.removeTextChangedListener(this);
String text = editText.getText().toString();

if (text .matches("(@\\w+)")) {
editText.setText(Html.fromHtml(text .replaceAll(
"(@\\w+)", "<font color='#ffff0000'>$1</font>")));
}

editText.addTextChangedListener(this);

}
};

关于android - 在 Android Edittext 中为特定文本设置文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com