我可以得到旧的价值。但是我没有办法输入新的
值。
实际上,我想将旧值与新值分开。
例如:如果oldText=hello
并且新输入的EditText值等于(hello w
或w hello
),则我要newText=w
。
public class MyTextWatcher implements TextWatcher {
private String oldText = "";
private String newText = "";
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
this.oldText = s.toString();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
}
}
感谢帮助。
最佳答案
通过start
方法中的count
和onTextChanged
参数,您可以计算并获取新的键入的值。
onTextChanged
调用此方法以通知您s
中的count
以start
开头的字符刚刚替换了具有
长度before
。尝试从中更改s
是错误的
此回调。
这样你就可以:
public class MyTextWatcher implements TextWatcher {
private String newTypedString = "";
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
newTypedString = s.subSequence(start, start + count).toString().trim();
}
@Override
public void afterTextChanged(Editable s) {
}
}
关于android - 如何使用TextWatcher在EditText上获取新输入的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53864396/