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