【发布时间】:2018-09-07 21:30:18
【问题描述】:
我有一个计算器应用程序在按下等号按钮时崩溃,并且 EditText 中没有任何东西可以从中获取文本。我已经查看了其他类似情况的问题,但这些建议不起作用。我是 android 新手,需要任何帮助。如果我的 EditText.setText() 中有一个“0”,我也会遇到问题,当它们被按下时,“0”会停留在其他数字的前面。如果您需要更多代码来帮助,请告诉我。
这里是 Logcat 信息
09-08 07:58:32.915 13726-13726/com.ruthadeaton.bld3.calculator
E/AndroidRuntime: 致命异常: main 进程:com.ruthadeaton.bld3.calculator,PID:13726 java.lang.NumberFormatException: 空字符串
atsun.misc.FloatingDecimal.readJavaFormatString (FloatingDecimal.java:1842) 在 sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122) 在 java.lang.Float.parseFloat(Float.java:451) 在 com.ruthadeaton.bld3.calculator.MainActivity$26.onClick (MainActivity.java:346) 在 android.view.View.performClick(View.java:6597) 在 android.view.View.performClickInternal(View.java:6574) 在 android.view.View.access$3100(View.java:778) 在 android.view.View$PerformClick.run(View.java:25885) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6669) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
这是我的代码:
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueTwo=Float.parseFloat(edt1.getText() + "");
if (mAddition == true) {
edt1.setText(mValueOne + mValueTwo + "");
mAddition=false;
}
if (mSubtract == true) {
edt1.setText(mValueOne - mValueTwo + "");
mSubtract=false;
}
if (mMultiplication == true) {
edt1.setText(mValueOne * mValueTwo + "");
mMultiplication=false;
}
if (mDivision == true) {
edt1.setText(mValueOne / mValueTwo + "");
mDivision=false;
}
}
});
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(edt1.getText() + "0");
}
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne=Float.parseFloat(edt1.getText() + "");
mAddition=true;
edt1.setText(null);
}
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne=Float.parseFloat(edt1.getText() + "");
mSubtract=true;
edt1.setText(null);
}
});
buttonMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne=Float.parseFloat(edt1.getText() + "");
mMultiplication=true;
edt1.setText(null);
}
});
buttonDivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mValueOne=Float.parseFloat(edt1.getText() + "");
mDivision=true;
edt1.setText(null);
}
});
【问题讨论】:
标签: android