Java 无法启动活动:无效的int

Java 无法启动活动:无效的int,java,android,Java,Android,伙计们,我正在编写这个android应用程序,但我在logCat中发现一个运行时错误:java.lang.RuntimeException:无法启动活动:java.lang.NumberFormatException:无效int:“ et为空,除非将其设置为默认值。因此,et.getText将返回“”这不是一个有效的数字,因此parseInt将引发异常。您需要等待获取该文本,直到用户按下猜测按钮,然后获取该文本 numberFormatException通常是由字符串到int的转换出错引起的。我

伙计们,我正在编写这个android应用程序,但我在logCat中发现一个运行时错误:java.lang.RuntimeException:无法启动活动:java.lang.NumberFormatException:无效int:“


et为空,除非将其设置为默认值。因此,et.getText将返回“”这不是一个有效的数字,因此parseInt将引发异常。您需要等待获取该文本,直到用户按下猜测按钮,然后获取该文本

numberFormatException通常是由字符串到int的转换出错引起的。我怀疑这条线

userAns = Integer.parseInt(et.getText().toString());
因为它还没有用文本初始化

用try/catch把它包起来

编辑: 如何修复

我建议搬家

userAns = Integer.parseInt(et.getText().toString()); 
在guess.setOnClickListener中,如下所示:

guess.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        answer = num1 + num2;

        try {
            userAns = Integer.parseInt(et.getText().toString());
            if (userAns == answer) {
                tv1.setText("Correct... The Answer is " +answer);
            } else {
                tv1.setText("wrong");
            }
        } catch(Exception e) {
            // output error that 'et' field is emtpy or doesnt contain a number
        }
    }
});

你能详细说明一下如何避免这个问题吗?我已经更新了我的答案,加入了一个FixThank bro。。它起作用了。。我非常感谢帮助发布您的日志,并指定您获得的行java.lang.NumberFormatException。
guess.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        answer = num1 + num2;

        try {
            userAns = Integer.parseInt(et.getText().toString());
            if (userAns == answer) {
                tv1.setText("Correct... The Answer is " +answer);
            } else {
                tv1.setText("wrong");
            }
        } catch(Exception e) {
            // output error that 'et' field is emtpy or doesnt contain a number
        }
    }
});