我正在使用 android studio 为大学预科作业创建一个简单的应用程序
我已经能够开发大部分应用程序,但我需要以下功能的帮助:
- 确保所有字段均已输入
如果是(进行数学计算)
如果否(不进行数学计算,弹出窗口返回“缺失字段”)
像这样
Toast.makeText(getApplicationContext(), "Missing Value", Toast.LENGTH_SHORT).show();
我正在考虑一个 If/Else 语句,但我对这一切都很陌生,似乎无法让它发挥作用
这是我展示数学函数等的所有java代码
//Inside the OnCreate
//Linking the Variables
Numet0 = (EditText) findViewById(R.id.editText);
Numet1 = (EditText) findViewById(R.id.editText2);
Numet2 = (EditText) findViewById(R.id.editText3);
b = (Button) findViewById(R.id.button);
tv = (TextView) findViewById(R.id.textView2);
//Creating Function On Button 1
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Double Num0 = Double.parseDouble(Numet0.getText().toString());
Double Num1 = Double.parseDouble(Numet1.getText().toString());
Double Num2 = Double.parseDouble(Numet2.getText().toString());
//Result Output
if(TextUtils.isEmpty(Numet0.getText()) ||TextUtils.isEmpty(Numet1.getText())|| TextUtils.isEmpty(Numet2.getText())) {
Toast.makeText(getApplicationContext(), "Field Missing", Toast.LENGTH_SHORT).show();
}
else {
result = ((Num0 - Num1) / Num2);
tv.setText("Your monthly payment = €" + result);
//Popup After Button Press
Toast.makeText(getApplicationContext(), "Result Complete", Toast.LENGTH_SHORT).show();
}
}
});
这是我尝试上述 if/else 语句时遇到的错误
02-21 23:37:27.564 2310-2310/com.nci.caprep E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.nci.caprep, PID: 2310
java.lang.NumberFormatException: Invalid double: ""
at java.lang.StringToReal.invalidReal(StringToReal.java:63)
at java.lang.StringToReal.parseDouble(StringToReal.java:267)
at java.lang.Double.parseDouble(Double.java:301)
at com.nci.caprep.MainActivity$2.onClick(MainActivity.java:68)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
最佳答案
在public void onClick(View v)
里面你可以检查
if(TextUtils.isEmpty(Numet0.getText()) ||TextUtils.isEmpty(Numet1.getText())||TextUtils.isEmpty(Numet2.getText())) {
// show your Toast
return;
}
// If above condition is not true
// use your parseDouble method to get Double value, because at this point you know that NumetX.getText().toString() won't throw NPE
// update your TextView or any other UI component (No need to show Toast of error here)
希望对你有帮助!
关于java - Android 应用程序中的 If/Else 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35541914/