如何使用编辑文本而不是使用按钮计算值 [android]

How to compute a value using edit text but not using button [android]

我有3个编辑框和一个按钮但是在代码下面我用按钮来计算 我厌倦了使用 textwatcher 但他们根本没有调整 我的问题是有一种方法可以在没有按钮的情况下仅使用编辑文本自动计算值。

**[update code]**

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Cal extends Activity implements TextWatcher{

    EditText amount1, amount2,tt;

    Button cal;
    double x=0;
    double y=0;
    double t=0.45;
    double m=0.025;
    double v=1.575;
    double w=0;
    double a=0;
    double b=0;
    double c=0;
    double d=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculate);

        amount1 = (EditText)findViewById(R.id.edT);
        amount1.addTextChangedListener(this);
        amount2 = (EditText)findViewById(R.id.edt2);
        amount2.addTextChangedListener(this);
        tt = (EditText)findViewById(R.id.edtotal);
        tt.addTextChangedListener(this);


    }
    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub
        if(amount1.getText().toString() != null && amount2.getText().toString() != null)
        {
           x=Double.parseDouble(amount1.getText().toString());
            y=Double.parseDouble(amount2.getText().toString());
            a = x * t ;
            b = y * m;
            c = b * v;
            d = a / c;
            //e = d * 100;
            tt.setText(""+ d);
    }
    }
}

这是您更新后的工作代码,只需粘贴即可

 public class Cal extends Activity implements TextWatcher {

        EditText amount1, amount2, tt;

    Button cal;
    double x = 0;
    double y = 0;
    double t = 0.45;
    double m = 0.025;
    double v = 1.575;
    double w = 0;
    double a = 0;
    double b = 0;
    double c = 0;
    double d = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculate);

        amount1 = (EditText) findViewById(R.id.edT);
        amount1.addTextChangedListener(this);
        amount2 = (EditText) findViewById(R.id.edt2);
        amount2.addTextChangedListener(this);
        tt = (EditText) findViewById(R.id.edtotal);

    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub
        if (amount1.getText().toString().length() > 0
                && amount2.getText().toString().length() > 0) {
            x = Double.parseDouble(amount1.getText().toString());
            y = Double.parseDouble(amount2.getText().toString());
            a = x * t;
            b = y * m;
            c = b * v;
            d = a / c;
            // e = d * 100;
            tt.setText("" + d);
        }
    }
}