0
我试图让EditText有一个数字,当用户键入一个数字时 - 将使用正则表达式模式自动添加逗号。
这是我已经试过:将EditText的值设置为其自己的值,修改 - 导致冻结
input.addTextChangedListener(new TextWatcher() {
...
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (input.getText().toString().length() >= 4)
input.setText(addComma(input.getText().toString()));
}
...
}
addComma(字符串):
public String addComma(String number) {
return number.replace(",", "").replaceAll("\\B(?=(\\d{3})+(?!\\d))", ",");
}
当输入与4位的数字 - 该应用程序被冻结,一段时间后崩溃。
因为你改变在'onTextChanged()'事件的文本。这将循环递归直到**堆栈溢出** s。 –