我正在尝试设置我的EditText以进行重量输入。对于maxLenght = 5(它的变量)它应该格式化为“1,149”格式,并且它正在工作,直到我按退格键。然后它正在制作类似“1,49”的东西。
例如:
给我结果:
1,...,23
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLenght)});
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
try {
editText.removeTextChangedListener(this);
String str = s.toString();
str = new StringBuilder(str).reverse().toString().replaceAll("(\\d{"+dokladnosc+"})", "$1,");
str = new StringBuilder(str).reverse().toString().replaceAll("^,|,$", "");
editText.setText(str);
try{
//Log.i("inf", editText.length()+"-"+str.length());
if(editText.length() == str.length())
{
editText.setSelection(str.length());
}
else
{
editText.setSelection(str.length()-1);
}
}
catch(Exception exc)
{
Log.e("Err", exc.toString());
//editText.setSelection(str.length()-1);
}
editText.addTextChangedListener(this);
} catch (NumberFormatException e) {
e.printStackTrace();
}
}