如果语句导致应用程序崩溃

时间:2011-11-10 18:06:04

标签: java android if-statement crash

我正在开发一个应用程序,它涉及与用户通过文本框输入的数字进行比较,但是我会在任何if语句中输入程序在被调用时崩溃。否则程序运行正常,没有任何崩溃或错误。

    package improvecredit.app.basic;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.text.Editable;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

public class ImprovrCreditBasicActivity extends Activity {
/** Called when the activity is first created. */
public int minCredScore = 300;
public int maxCredScore = 850;
public int inputScore;
public int idealScore;

public Editable inputString;
public Editable idealString;

public EditText user;
public EditText desired;
public TextView output;

public Button submit;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    user = (EditText) findViewById(R.id.user_text);
    desired = (EditText) findViewById(R.id.desired_text);
    output = (TextView) findViewById(R.id.output_text);
    submit = (Button) findViewById(R.id.submit_button); 

    //submit.setOnClickListener(new View.OnClickListener());

    submit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //inputString = user.getText();
            //idealString = desired.getText();

            inputScore = Integer.getInteger(user.getText().toString());
            idealScore = Integer.getInteger(desired.getText().toString());

            if (inputScore >= 0 && idealScore >= 0){

                if (inputScore < minCredScore || idealScore < minCredScore){
                    output.setText("Invalid Entries");
                }
                if (inputScore > maxCredScore || idealScore > maxCredScore){
                    output.setText("Invalid Entries");
                }
                if (inputScore > idealScore){
                    output.setText("Nice Credit Score!");
                }
                if (inputScore < idealScore){
                    output.setText("For more information on how to improve your credit score, please visit" + "/n" + "http://www.creditscoresandcredit.com/");
                }
            }
            else{
                output.setText("Please enter valid credit scores");
            }
        }
    });         
}

如果有人可以指出代码中可能出错的地方,我会非常感激。

2 个答案:

答案 0 :(得分:3)

乍一看,不要使用Integer.getInteger(),请使用Integer.parseInt()。

如果这不能解决问题,请从控制台中包含崩溃日志,以便我们可以确切地看到正在引发的异常。

答案 1 :(得分:0)

我打赌引入了空值。如果在If语句中使用变量idealScore和inputScore之前检查为null,则会避免此错误。在粘贴错误跟踪之前,我们只能为您猜测。