Android应用程序崩溃,按钮或条件不起作用?

时间:2013-01-18 15:46:52

标签: java android

我几乎是一个新手,所以我可以使用一些帮助来了解为什么我的应用程序一直在崩溃?我已经尝试了很多方法,这是我到目前为止最好的方式。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView lastAnswer = (TextView) findViewById(R.id.textView5);
    final TextView answerLabel = (TextView) findViewById(R.id.textView1);
    final TextView answerLabel1 = (TextView) findViewById(R.id.textView2);
    final TextView answerLabel2 = (TextView) findViewById(R.id.textView3);
    final EditText enteredNumber = (EditText) findViewById(R.id.editText1);
    Button getAnswerButton = (Button) findViewById(R.id.button1);

    getAnswerButton.setOnClickListener(new View.OnClickListener() { 

            @Override   
        public void onClick(View arg0) {
                 Random randomGenerator = new Random();
                  //rand gene
                     int randomNumber2 = randomGenerator.nextInt(99);
                      int randomNumber = randomGenerator.nextInt(99);

            String number = "";
            String number2 = "";
            String jtext = " Times ";
            number2= Integer.toString(randomNumber2);
            number= Integer.toString(randomNumber);
            answerLabel.setText(jtext);
            answerLabel1.setText(number2);
            answerLabel2.setText(number);

            String content = enteredNumber.getText().toString();
  

当我评论条件时,应用程序工作正常,但这不是我想要的全部   我想问题是有条件的,但我似乎无法找到它。   在日食上没有任何错误。

            if (content != null){
                int anInt=Integer.parseInt(content);
                int result= randomNumber2 *randomNumber;

                    if(anInt == result ){

                      Context context =getApplicationContext();
                            CharSequence text = "That's correct!!";
                            int duration = Toast.LENGTH_SHORT;
                            Toast toast = Toast.makeText(context, text, duration);
                            toast.show();

                    } else{ 

                    Context context = getApplicationContext();
                    CharSequence text = "That's not correct";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show(); 
                    }
                    lastAnswer.setText(content);
            }

            }
        });}

那么我在这里尝试做什么(介意noob代码)只是生成2个随机数,显示它们然后让用户输入结果,比较它,通知是否正确然后重新生成..我已经这几天一直在努力

感谢任何帮助,甚至是遵循此代码的新方法。感谢。

3 个答案:

答案 0 :(得分:1)

你应该用try / catch包围你的解析。被解析为数字的用户输入可能并不总是有效 - 特别是使用EditTexts。变化

int anInt=Integer.parseInt(content);

所以它是

  int anInt= -1;
  try{
   anInt = Integer.parseInt(content);
  }
  catch (NumberFormatException e)
  {
    //Show toast or dialog
  }

为了让生活更轻松,您应该制作EditText accept in only numbers

答案 1 :(得分:0)

嗯....为什么你用应用程序上下文来显示祝酒词?我记得最近看到一个同样问题的问题。请尝试使用活动上下文(MainActivity.this)。

答案 2 :(得分:-1)

在添加评论后清理项目,再次运行

如果这不是您的解决方案,

将编辑答案