在TextChangedListener上将String解析为int

时间:2016-10-15 08:19:46

标签: android

我有2个editText,每个都在lbs到kg之间转换。 当用户在一个editText中键入数字然后尝试编辑第二个时,我得到NumberFormatException:Invalid int。 enter image description here

    @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; 
    }

1 个答案:

答案 0 :(得分:1)

问题是Integer.parseInt()期望包含整数的字符串,如果字符串包含浮点数,它将失败。

试试这个:

private String toKG(String input) {
    return Double.toString(Double.parseDouble(input) * wKG);
}