我一直在自己编写应用程序,但是每次单击一个按钮时都会遇到一些问题(因为问题出在其 OnCreate 方法中)。我已将其范围缩小到我认为的原因,似乎是这条线:int desitky_tom = Integer.parseInt(et_tom.getText().toString());我想将String我收到的 et_tom 变量从 aneditText更改为 an int。这可能是原因吗?如果是,我该如何更改它以使应用程序不再崩溃?这是我的 Logcat 错误日志:2019-02-07 16:51:16.272 2794-2794/? E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.mariaspocitadlo, PID: 2794java.lang.NumberFormatException: For input string: "" at java.lang.Integer.parseInt(Integer.java:620) at java.lang.Integer.parseInt(Integer.java:643) at com.example.mariaspocitadlo.MainActivity$1.onClick(MainActivity.java:41) at android.view.View.performClick(View.java:6897) at android.widget.TextView.performClick(TextView.java:12693) at android.view.View$PerformClick.run(View.java:26101) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)这是其余的代码:final Button spocitat = (Button) findViewById(R.id.button); spocitat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //editext Toma na desítky Toma EditText et_tom = (EditText)findViewById(R.id.editText); int desitky_tom = Integer.parseInt(et_tom.getText().toString());
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
从您的 LogCat 来看,输入的字符串是"". (LogCat 中的第 3 行)。因此它不是一个数字,不能转换为int。您应该确保输入一个数字,以阻止崩溃围绕您的代码,try例如catch:
try {
EditText et_tom = (EditText)findViewById(R.id.editText);
int desitky_tom = Integer.parseInt(et_tom.getText().toString());
} catch (Exception e) { System.out.println(e.toString()); }
除了循环输入并确保输入的文本仅来自数字数组。
慕莱坞森
TA贡献1810条经验 获得超4个赞
您需要将整数解析包含在 try/catch 块中以避免NumberFormatException
例如:
int desitky_tat = 0;
try {
desitky_tat = Integer.parseInt(et_tat.getText().toString());
} catch (NumberFormatException e) {
//handle exception - if required
}
它崩溃的原因是因为EditText按下按钮时您可能有空文本或非数字文本,从而导致应用程序崩溃。
添加回答
举报
0/150
提交
取消