我的代码:的setText()在afterTextChanged()显示相反的顺序文本
fractionNumEt.addTextChangedListener(new TextWatcher() {
boolean ignoreChange = false;
@Override
public void afterTextChanged(Editable s) {
if(!ignoreChange) {
String string = String.valueOf(s);
if (string.length() > 2) {
string = string.substring(0, string.length() - 1);
ignoreChange = true;
fractionNumEt.setText(string);
ignoreChange = false;
}
}
}
....
我试图限制字符长度2,但要保留听力。当我输入'1','2'时,它显示“12”,这很好。现在当我输入'3'时,它会写入“31”而不是“23”。 这到底是怎么回事! 我也试过:
string = string.substring(1, string.length());
在这种情况下,它的工作原理是第一次n只有再没有什么改变。
为什么你使用 String string = String.valueOf(s); –
忽略这一点,我只是与每一种可能性 – usman
战斗,你可以使用String string = s.toString(); –