-1

公共类 Simple_Interest 扩展 Activity {

EditText p, r, t, e, si;
Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_interest);
    p = (EditText) findViewById(R.id.edtprinci);
    r = (EditText) findViewById(R.id.edtrate);
    p = (EditText) findViewById(R.id.edtyear);
    si = (EditText) findViewById(R.id.edtres);
    btn = (Button) findViewById(R.id.butint);

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            // TODO Auto-generated method stub
            double n1 = 0;
            double n2 = 0;
            double n3 = 0;
            double ans = 0;
            n1 = Double.parseDouble(p.getText().toString());
            n2 = Double.parseDouble(r.getText().toString());
            n1 = Double.parseDouble(t.getText().toString());
            ans = (n1 * n2 * n3) / 100;
            si.setText(Double.toString(ans));
        }

    });
}

}

每次我尝试在模拟器中运行程序时,我都会收到一个名为“不幸的是应用程序已停止工作”的错误对话框......

需要帮忙....

4

1 回答 1

1

你犯了一个错误 :

p = (EditText) findViewById(R.id.edtprinci);
r = (EditText) findViewById(R.id.edtrate);
p = (EditText) findViewById(R.id.edtyear);

你有 2 次 p 而没有 t

p = (EditText) findViewById(R.id.edtprinci);
r = (EditText) findViewById(R.id.edtrate);
t = (EditText) findViewById(R.id.edtyear);

应该更好,否则 t 永远不会初始化

同样的

        n1 = Double.parseDouble(p.getText().toString());
        n2 = Double.parseDouble(r.getText().toString());
        n1 = Double.parseDouble(t.getText().toString());

您需要将最后一个更改为

        n3 = Double.parseDouble(t.getText().toString());

你的 onclick 应该是这样的:

    public void onClick(View v) {
        double n1 = 0;
        double n2 = 0;
        double n3 = 0;
        double ans = 0;

        if( !p.getText().toString().equals("") && !r.getText().toString().equals("") &&!t.getText().toString().equals("") )
        {
        n1 = Double.parseDouble(p.getText().toString());
        n2 = Double.parseDouble(r.getText().toString());
        n1 = Double.parseDouble(t.getText().toString());
        ans = (n1 * n2 * n3) / 100;
        si.setText(Double.toString(ans));
        }
        else{
        si.setText("Missing data");
        }
    }

或者甚至更好的尝试和捕捉;)

Ps:你初始化了变量 e 但你从不使用它:)

于 2013-09-12T14:19:35.660 回答