删除固定数量的数字
remove fixed number of digits
也许这对您来说并不难,但我需要一些帮助。我有 editText 显示 6 位数长度的代码。例如“292000”、“123000”等...
我在 editText 中有此信息我希望用户只能删除最后 2 位数字以输入他们自己的号码(他们只能更改最后两位数字)。例如"292020" "123001".
我正在使用 textwatchers,但我无法在其中使用 setText,因为我会收到 Whosebug 错误。任何帮助将不胜感激。
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) {
}
});
}
尝试使用将 seteditable 设置为 true 的文本视图。将最少字符设置为 "n" 并保留最后 "k" 个字符可编辑。自定义文本视图可以解决问题
从 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);
}
}
也许这对您来说并不难,但我需要一些帮助。我有 editText 显示 6 位数长度的代码。例如“292000”、“123000”等...
我在 editText 中有此信息我希望用户只能删除最后 2 位数字以输入他们自己的号码(他们只能更改最后两位数字)。例如"292020" "123001".
我正在使用 textwatchers,但我无法在其中使用 setText,因为我会收到 Whosebug 错误。任何帮助将不胜感激。
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) {
}
});
}
尝试使用将 seteditable 设置为 true 的文本视图。将最少字符设置为 "n" 并保留最后 "k" 个字符可编辑。自定义文本视图可以解决问题
从 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);
}
}