崩溃-6ren"> 崩溃-我做了一个 if/else 语句来检查 Edit Text 的值(Edit Text 的值保存在 myPrefs 中)是否为空。如果为空,则会显示错误。如果它不为空,另一个对话框将显示 op,用户可以-6ren">
gpt4 book ai didi

java - 在 Java (Android) 中检查 null 和 "emptyness"--> 崩溃

转载 作者:太空狗 更新时间:2023-10-29 15:41:12 25 4
gpt4 key购买 nike

我做了一个 if/else 语句来检查 Edit Text 的值(Edit Text 的值保存在 myPrefs 中)是否为空。如果为空,则会显示错误。如果它不为空,另一个对话框将显示 op,用户可以在应用程序中进行更深入的操作。这就是我想要的。

问题是,当我检查它是否为空时,应用程序崩溃了。这是我的代码,我已经实现了 ||(使用 nullisEqual(""),但是没有成功。

if (myPrefs.getString("TELHUISARTS", null).equals("") || myPrefs.getString("TELHUISARTS",null).equals(null)) {
String contactWithQuotes = getResources().getString(R.string.Contactwithquotes);

AlertDialog.Builder alertDialogBuilder2 = new AlertDialog.Builder(Gevaar.this);

// set title
alertDialogBuilder2.setTitle("No phone number found");

// set dialog message
alertDialogBuilder2
.setMessage("You have not entered a phone number for your GP. You can do this at " +contactWithQuotes+ ".")
.setCancelable(false)
.setNegativeButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});

AlertDialog alertDialog2 = alertDialogBuilder2.create();

// show it
alertDialog2.show();
} else {
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();

// show it
alertDialog.show();

}

错误:

05-01 23:17:09.295  24300-24300/com.company.myapp 
E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.company.myapp, PID: 24300
java.lang.NullPointerException
at com.company.myapp.Gevaar$11.onClick(Gevaar.java:609)
at android.view.View.performClick(View.java:4456)
at android.view.View$PerformClick.run(View.java:18465)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

你可能想改变你的条件:

 if (myPrefs.getString("TELHUISARTS", null).equals("") || myPrefs.getString("TELHUISARTS",null).equals(null))

收件人:

 if (myPrefs.getString("TELHUISARTS",null) == null || myPrefs.getString("TELHUISARTS", null).equals(""))

你这样做的方式,如果 myPrefs.getString("TELHUISARTS",null) 确实是 null,你将得到一个 NullPointerException在第一次检查中,因为它等同于调用 null.equals("")。此外,您应该使用 == 而不是 equals() 来检查引用是否为 null

关于java - 在 Java (Android) 中检查 null 和 "emptyness"--> 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com