我想使用textwatcher执行实时计算,但不进行计算

时间:2019-03-31 15:31:53

标签: java android

    I'm trying to perform  a real time calculation using two edit text and get the result in third edit text it is not calculating   

e1 textchanger

@Override         public void afterTextChanged(Editable s){

        double e1=Double.parseDouble(et1.getText().toString().trim());
        double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;

        et3.setText(String.valueOf(e3));

    }
});

et2 textchanger

  @Override
    public void afterTextChanged(Editable s) {
        double e1=Double.parseDouble(et1.getText().toString().trim());
       double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;
        et3.setText(String.valueOf(e3));

    }
});

et3 textchanger         @Override         public void afterTextChanged(Editable s){

        double ans=(Double.parseDouble(et1.getText().toString().trim()))+(Double.parseDouble(et2.getText().toString().trim()));
        et3.setText(String.valueOf(ans));

    }
});

未计算编辑文本的值

甚至试图在et1和et2中使用文本观察器执行计算,但应用程序崩溃了

2 个答案:

答案 0 :(得分:0)

将文本观察器添加到EditText1和EditText2。执行计算afterTextChanged并将其值设置为第三个EditText。 注意:不要将textWatcher添加到结果EditText中。

答案 1 :(得分:0)

在每个textWatcher(et1和et2)中,您需要检查其他编辑文本的文本是否不为空。

最好同时检查两个观察者:

@Override
public void afterTextChanged(Editable s) {
    if (et1.getText() != null && et2.getText() != null) {
        double e1=Double.parseDouble(et1.getText().toString().trim());
        double e2=Double.parseDouble(et2.getText().toString().trim());
        double e3=e1+e2;
        et3.setText(String.valueOf(e3));
    }

}