java(android) - 意外错误

时间:2011-12-29 14:36:24

标签: java android

我的应用程序意外关闭,我真的不知道问题是什么。我是编程java的新手。我试过'尝试','抓住'和'最后'的方法。 这是代码:

package com.eqsec.csaba;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EqsecActivity extends Activity {
/** Called when the activity is first created. */

Button solve;
EditText vA, vB, vC;
TextView solution;
int discriminant, iA, iB, iC;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    solve = (Button) findViewById(R.id.bSolve);
    vA = (EditText) findViewById(R.id.etA);
    vB = (EditText) findViewById(R.id.etB);
    vC = (EditText) findViewById(R.id.etC);

    solve.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                try{
                String A = vA.getText().toString();
                iA = Integer.parseInt(A);
               String B = vB.getText().toString();
                iB = Integer.parseInt(B);
                String C = vC.getText().toString();
                iC = Integer.parseInt(C);


            solution.setText("Yout total is " + iA);
                }catch (ArithmeticException e) {
                    e.printStackTrace();
                }


            }
        });


              }
       }

请帮助我,我想写一个Android应用程序,它可以解决一些数学问题。

2 个答案:

答案 0 :(得分:3)

您必须抓住NumberFormatException而不是ArithmeticException

之前初始化解决方案变量。像:

solution = (TextView) findViewById(R.id.solution);

完整代码将是:

package com.eqsec.csaba;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EqsecActivity extends Activity {
/** Called when the activity is first created. */

Button solve;
EditText vA, vB, vC;
TextView solution;
int discriminant, iA, iB, iC;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
solve = (Button) findViewById(R.id.bSolve);
vA = (EditText) findViewById(R.id.etA);
vB = (EditText) findViewById(R.id.etB);
vC = (EditText) findViewById(R.id.etC);
solution = (TextView) findViewById(R.id.solution);

solve.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            try{
            String A = vA.getText().toString();
            iA = Integer.parseInt(A);
           String B = vB.getText().toString();
            iB = Integer.parseInt(B);
            String C = vC.getText().toString();
            iC = Integer.parseInt(C);


        solution.setText("Yout total is " + iA);
            }catch (NumberFormatException e) {
                e.printStackTrace();
            }


        }
    });


          }
   }

答案 1 :(得分:0)

试试这个:

       solve.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View v) {
                     // TODO Auto-generated method stub
                     String A = vA.getText().toString();
                     iA = Integer.ValueOf(A);
                    String B = vB.getText().toString();
                     iB = Integer.ValueOf(B);
                     String C = vC.getText().toString();
                     iC = Integer.ValueOf(C);
                   // intialize solution
                   solution.setText("Yout total is " + String.ValueOf(iA));
                     //This is not the total yet
                   }
             });