【发布时间】:2018-05-24 09:46:37
【问题描述】:
首先我对编码完全陌生,尤其是 android 开发 :-) 现在我正在尝试为自己制作一个小型预算应用程序。
这个想法是通过 EditText 接收用户输入,然后点击加号或减号按钮从余额中减去或添加给定的数字。问题是我的应用程序在点击减号按钮后崩溃。我的代码如下。
// 1. 将用户给的AMOUNT从总余额中减去
// 2. 打印新余额
protected void decrement(View view) {
EditText amount = (EditText) findViewById(R.id.amount);
double minus = Double.parseDouble(amount.getText().toString());
balance -= minus;
displayBalance();
}
// 将余额打印到屏幕上
private void displayBalance() {
TextView quantityTextView = (TextView) findViewById(R.id.balance_TextView);
quantityTextView.setText("" + balance);
}
通过调试器和注释行我很确定,错误来自以下行:
double minus = Double.parseDouble(amount.getText().toString());
(惊喜xD)
这是日志中的运行时错误:(抱歉给您带来麻烦,谢谢您的帮助)
致命异常:主要 进程:com.example.android.moneymama,PID:2618 java.lang.IllegalStateException:无法执行方法 安卓:点击 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 在 android.view.View.performClick(View.java:6294) 在 android.view.View$PerformClick.run(View.java:24770) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:6294) 在 android.view.View$PerformClick.run(View.java:24770) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 引起:java.lang.NumberFormatException:对于输入字符串:“10,00” 在 sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) 在 sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) 在 java.lang.Double.parseDouble(Double.java:539) 在 com.example.android.moneymama.MainActivity.decrement(MainActivity.java:32) 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:6294) 在 android.view.View$PerformClick.run(View.java:24770) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
【问题讨论】:
标签: java string parsing android-edittext runtime-error