缺少Android文本监视程序计算

缺少Android文本监视程序计算,android,Android,我有三个EditText元素。我想根据存储在第三个编辑文本字段中的前两个EditText值进行计算 但计算总是出错。每当我从secound edit文本中清除键入的值时,计算将无法正常工作 public void onTextChanged(CharSequence s, int a, int b, int c) { try{ a=Integer.parseInt(totamt.getText().toString().trim());

我有三个EditText元素。我想根据存储在第三个编辑文本字段中的前两个EditText值进行计算

但计算总是出错。每当我从secound edit文本中清除键入的值时,计算将无法正常工作

 public void onTextChanged(CharSequence s, int a, int b, int c) {
            try{
                a=Integer.parseInt(totamt.getText().toString().trim());
                b=Integer.parseInt(expenses.getText().toString().trim());
                c=Integer.parseInt(handover_amt.getText().toString().trim());
                int d = Integer.parseInt(String.valueOf(a)) - Integer.parseInt(String.valueOf(b)) - Integer.parseInt(String.valueOf(c));
                balance_amt.setText(String.valueOf(d));

                int myOB =  Integer.parseInt(et_overall_balance.getText().toString().trim());
                int OverallBalance = Integer.parseInt(String.valueOf(myOB)) - Integer.parseInt(handover_amt.getText().toString().trim());
                et_overall_balance.setText(String.valueOf(OverallBalance));
                System.out.println(OverallBalance);

            }catch(NumberFormatException numberEx)
            {
                System.out.println(numberEx);
            }

        }
使用下面的代码

edittext2.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (edittext1.getText().toString().trim() != null && !edittext1.getText().toString().trim().equalsIgnoreCase("")) {
                    if (edittext2.getText().toString().trim() != null && !edittext2.getText().toString().trim().equalsIgnoreCase("")) {
                        edittext3.setText("" + (Double.parseDouble(edittext1.getText().toString().trim()) - Double.parseDouble(edittext2.getText().toString().trim())));
                    } else {
                        Toast.makeText(activity, "Please enter value in edittext 2", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(activity, "Please enter value in edittext 1", Toast.LENGTH_LONG).show();
                }
            }
        });

要在第三个edittext中显示什么?edittext3=edittext1-edittext2。用户将在edittext2中输入值。我尝试了您的代码,但遇到了相同的问题。例如,
EDITTEXT1=5000
EDITTEXT2=5
(假设我只输入5)<代码>编辑文本3=4995这一切还是好的。但是我在
EDITTEXT2=50
中又输入了一个值(5在那里是多余的,所以我只添加了0)。现在结果是
EDITTEXT3=4945
。但我们需要4950的答案。问题是50将从旧的4995中减去,而不是从5000中减去。将上述侦听器添加到edittext1和edittext2,而不是edittext3上。