为了账号安全,请及时绑定邮箱和手机立即绑定

单击按钮后,我的应用程序不断崩溃

单击按钮后,我的应用程序不断崩溃

慕桂英546537 2022-06-08 16:45:52
我一直在自己编写应用程序,但是每次单击一个按钮时都会遇到一些问题(因为问题出在其 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()); }

除了循环输入并确保输入的文本仅来自数字数组。


查看完整回答
反对 回复 2022-06-08
?
慕莱坞森

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按下按钮时您可能有空文本或非数字文本,从而导致应用程序崩溃。


查看完整回答
反对 回复 2022-06-08
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信