我正在给一个EditText字段添加监听器,以实时将数字格式化为货币。
loanText.addTextChangedListener(new TextWatcher() {
private String current = "";
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!s.toString().equals(current)){
String cleanString = s.toString().replaceAll("[$,.]", "");
double parsed = Double.parseDouble(cleanString);
String formated = NumberFormat.getCurrencyInstance().format((parsed/100));
current = formated;
loanText.setText(formated);
loanText.setSelection(formated.length());
}
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
});
然而,当我试图清除EditView字段时,我的应用程序会崩溃。此外,退格键也不再起作用。
NumberFormatError
,或者(不太可能?)由于无限循环导致了ANR。 - Matthew