最近在项目中遇到的一个BUG,在这里和大家分享下,希望对大家有所帮助!
原生的计算器直接输入0时无限制,可以输入多次无效的0,显示的Textiew中可能出现000000000000000这种情况,可参考如下修改:
修改的文件所在目录如下:
packages/apps/Calculator/src/com/android/calculator2/Calculator.java
private CalculatorEditText mFormulaEditText;
mFormulaEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() > 1 && s.charAt(0) == '0') {
try {
Integer integer = Integer.valueOf(s.toString());
mFormulaEditText.setText(integer.toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
}
});
核心代码如上,主要是限制EditText中输入的0的数量,修改后输入框中只能输入一个0,不会出现多个无效0的情况。