也许这对你来说并不难,但我需要一些帮助。我有和editText,它显示一个6位长的代码。例如"292000“、"123000”等.
我有这个信息在一个editText,我希望用户只能删除最后2位数字,以放置他们自己的号码(他们只能更改最后两位数字)。例如"292020“"123001”。
我使用的是文本处理程序,但不能在其中使用setText,因为我会得到堆栈溢出错误。任何帮助都将不胜感激。
codArt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(codArt.getSelectionStart() < 5) {
codArt.setText(charSequence);
codArt.setSelection(5);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}发布于 2015-01-07 12:14:53
从onTextChanged()方法中删除代码并尝试如下所示.
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if (s.length() == 4 && after == 0) {
codArt.removeTextChangedListener(this);
codArt.setText(s);
codArt.setSelection(s.length());
codArt.addTextChangedListener(this);
}
}发布于 2015-01-07 11:48:13
尝试使用文本视图,并将可设置设置为true。将最小字符设置为"n“,并将最后一个"k”字符保持为可编辑字符。一个自定义的文本视图就能做到这一点。
https://stackoverflow.com/questions/27818601
复制相似问题