java - Android 应用程序中的 If/Else 验证?

标签 java android if-statement android-studio

我正在使用 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/

相关文章:

android - 解决 list 合并失败错误 - 工具 :replace

java - if 语句在 Java 中无法正确计算 boolean 值?

python - 在函数中传递变量并打印它们

java - 如何将 log4j.properties 文件转换为 log4j2.xml 或 log4j2.properties 文件

java - 检查 jar 文件的内容

java - 如何使用 Jackson 将 JSON 数组中的嵌套值解析到列表中

java - 如何使用 Java 中的缓冲读取器再次读取文件?

android - 如何在 Kotlin 中将 MutableLiveData<Boolean>() 的值设置为不利?

android - Honeycomb 3.1/Mono for Android 持续存在 'LightsOut'

jQuery 检查 Cookie 是否存在,如果不存在则创建它