[求助]我现在要删除这个帖子吗?
[解决方案]使输入更舒适我告诉程序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);
}
MainActivity.help是一个公共静态int
randomnumber也是一个整数
输入是一个editText
感谢您的帮助,抱歉我的英语不好 添
这是我收到的信息:
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.tim.greroderkleiner, PID: 4487
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.example.tim.greroderkleiner.MainActivity.confirm(MainActivity.java:228)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这是对任何人说的吗? :)
答案 0 :(得分:0)
在不知道错误的情况下,我打赌你在NullPointerException
调用时遇到了Integer.parseInt()
。您应该检查您的输入,以确保您没有尝试在.toString()
上致电null
。
编辑:感谢您发布输出。问题很明显:
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 */
}
答案 1 :(得分:0)
var sd= $(this).text();
答案 2 :(得分:0)
你没有在文本框中输入任何文本,并尝试将空字符串解析为int,这会导致错误。
int y = Integer.parseInt(input.getText().toString());
尝试检查输入是否为空,并在解析为int之前检查输入的字符串是否为全部数字。
String x=input.getText().toString()
if(!x.equals("") && TextUtils.isDigitsOnly(x))
int y = Integer.parseInt(input.getText().toString());