Java If语句错误

Java If语句错误,java,android,if-statement,Java,Android,If Statement,[已解决]我现在可以删除此帖子吗? [解决方案]为了使输入更易于使用,我告诉程序使用input.setText(“”)。这显然是造成错误的原因。谢谢大家:) 我是android和java新手,我的if语句有问题。每次“MainActivity.help”等于1时,程序就会崩溃,我不知道如何修复。如果有人能检查下面的代码,那就太酷了: if (MainActivity.help == 1) { int x = randomnumber; int y = Integer.parseInt(

[已解决]我现在可以删除此帖子吗?
[解决方案]为了使输入更易于使用,我告诉程序使用
input.setText(“”
)。这显然是造成错误的原因。谢谢大家:)

我是android和java新手,我的if语句有问题。每次“MainActivity.help”等于1时,程序就会崩溃,我不知道如何修复。如果有人能检查下面的代码,那就太酷了:

if (MainActivity.help == 1) {

  int x = randomnumber;
  int y = Integer.parseInt(input.getText().toString());

  int diffrence = Math.abs(x - y);
  if (diffrence < 3) {
  imageb.setImageResource(R.drawable.green);
}

这对任何人都有意义吗?:)

在不知道错误的情况下,我打赌您在调用
Integer.parseInt()
时遇到了
NullPointerException
。您应该检查输入,确保您没有试图调用
null
上的
.toString()

编辑:感谢您发布您的输出。问题很清楚:

Caused by: java.lang.NumberFormatException: Invalid int: ""
                  at java.lang.Integer.invalidInt(Integer.java:138)
                  at java.lang.Integer.parseInt(Integer.java:358)
这意味着您试图将
强制转换为整数,这将引发错误。您需要检查输入文本是否为空字符串以及是否为空:

String inputText = input.getText();
if (inputText != null && inputText != "") { 
    int y = Integer.parseInt(inputText.toString()); //probably don't need the toString()
    /* rest of your code */
} else { 
    /* inputText is null */
}
if(MainActivity.help==1){
试一试{
int x=随机数;
int-y;
if(input.getText().toString().length()=0){
int y=0;
}否则{
y=Integer.parseInt(input.getText().toString());
}
int difference=Math.abs(x-y);
if(差异<3){
imageb.setImageResource(R.drawable.green);
}捕获(例外e){
//无所事事
}
}

您尚未在文本框中输入任何文本,并试图将空字符串解析为int,这导致了错误

  int y = Integer.parseInt(input.getText().toString());
在解析为int之前,请尝试检查输入是否为null,并检查输入的字符串是否为所有数字

String x=input.getText().toString()
if(!x.equals("") && TextUtils.isDigitsOnly(x))
   int y = Integer.parseInt(input.getText().toString());

尝试使用调试器?您还应该在控制台中获得错误输出。请包括该错误。每次“MainActivity.help等于1,程序崩溃了?哇,这真是我的一天。是你的代码崩溃了,而不是
if
语句。几乎可以肯定,因为输入中没有数字数据,但如果没有日志错误就无法判断。此外,在这样的活动中保留静态变量几乎是你的pr的100%标志gram写得很糟糕,您不知道自己在做什么。您的代码语法不正确。您缺少一个右括号。任何人都不应该放弃有用的答案,并标记帮助您解决问题的答案。这是我以前遇到的问题,但感谢您的回答。如果这对您有帮助,我会在上面发布错误。@timH。谢谢你发布输出。我已经更新了我的答案。我之前得到了一个if语句,这样如果editText不是空的,上面的代码就会执行。如果输入为空,你不应该转到if语句本身。答案只是给出了需要做什么的想法
  int y = Integer.parseInt(input.getText().toString());
String x=input.getText().toString()
if(!x.equals("") && TextUtils.isDigitsOnly(x))
   int y = Integer.parseInt(input.getText().toString());