我有2个editText,每个都在lbs到kg之间转换。 当用户在一个editText中键入数字然后尝试编辑第二个时,我得到NumberFormatException:Invalid int。
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
switch (et.getId()) {
case R.id.kg: {
v2.removeTextChangedListener(watcher2);
if (s.length() < 1) {
v2.setText("");
} else {
v2.setText(toKG(s.toString()));
}
v2.addTextChangedListener(watcher2);
break;
}
case R.id.lbs: {
v1.removeTextChangedListener(watcher1);
if (s.length() < 1) {
v1.setText("");
} else {
v1.setText(toLBS(s.toString()));
}
v1.addTextChangedListener(watcher1);
break;
}
}
}
private String toKG(String input){
return "" + Integer.parseInt(input) * wKG;
}
答案 0 :(得分:1)
问题是Integer.parseInt()
期望包含整数的字符串,如果字符串包含浮点数,它将失败。
试试这个:
private String toKG(String input) {
return Double.toString(Double.parseDouble(input) * wKG);
}