Java 将字符串从EditText解析为双精度会导致运行时错误
首先,我对编码完全陌生,尤其是android开发人员:-)现在我正在尝试为自己制作一个小型预算应用程序 这个想法是通过EditText接收用户输入,然后点击加号或减号按钮从余额中减去或添加给定的数字。问题是我的应用程序在按下减号按钮后崩溃。我的代码如下 //一,。取用户给定的金额并从总余额中减去 //二,。打印出新的余额Java 将字符串从EditText解析为双精度会导致运行时错误,java,string,parsing,android-edittext,runtime-error,Java,String,Parsing,Android Edittext,Runtime Error,首先,我对编码完全陌生,尤其是android开发人员:-)现在我正在尝试为自己制作一个小型预算应用程序 这个想法是通过EditText接收用户输入,然后点击加号或减号按钮从余额中减去或添加给定的数字。问题是我的应用程序在按下减号按钮后崩溃。我的代码如下 //一,。取用户给定的金额并从总余额中减去 //二,。打印出新的余额 protected void decrement(View view) { EditText amount = (EditText) findViewById(R.id
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减号=double.parseDouble(amount.getText().toString())代码>
(惊喜xD)
这是日志中的运行时错误:(很抱歉造成混乱&谢谢您的帮助)
致命异常:主
进程:com.example.android.moneymama,PID:2618
java.lang.IllegalStateException:无法执行的方法
安卓:onClick
在
appcompativiewInflater$DeclaredOnClickListener.onClick(appcompativiewInflater.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(本机方法)
在
appcompativiewInflater$DeclaredOnClickListener.onClick(appcompativiewInflater.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)
at 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(本机方法)
在
appcompativiewInflater$DeclaredOnClickListener.onClick(appcompativiewInflater.java:288)
在android.view.view.performClick上(view.java:6294)
在android.view.view$PerformClick.run(view.java:24770)
位于android.os.Handler.handleCallback(Handler.java:790)