我正在使用TextWatcher实时接收EditText中的每个字母,我想将EditText文本与特定字符串进行比较。
当两个值不同时,我想从EditText更改颜色。
我已经尝试实现我的想法,但是工作不正常,我没有收到任何错误,即使第一个字母相等,文字也一直保持红色。
我的代码:
pip install gunicorn
gunicorn my_app:app
谢谢。
答案 0 :(得分:0)
您的主要问题是您将整个CharSequence与一个单独的角色进行比较,这个角色不太可能相等。如果要比较整个字符串,请删除for循环并使用:
if(s.equals(getString()) {
// Green
} else {
// Red
}
如果你真的想循环并逐字母地比较,那么当你可以直接比较字符串时,这是一个糟糕的解决方案。
答案 1 :(得分:0)
尝试直接在textwatcher上使用edittext的字符串。
if(mEditText.getText().toString.equals("YourString") {
mEditText.setTextColor(Color.GREEN);
} else {
mEditText.setTextColor(Color.RED);
}
答案 2 :(得分:0)
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.toString().equals(mEditText.getText().toString())) {
mEditText.setTextColor(Color.GREEN);
}
else {
mEditText.setTextColor(Color.RED);
}
}
无需使用for循环。只需从CharSequence对象中获取字符串,并将其与EditText对象的字符串进行比较。把它放在onTextChanged方法的内部,它会在输入一个字符后进行比较。