我做了一个 if/else 语句来检查 Edit Text 的值(Edit Text 的值保存在 myPrefs
中)是否为空。如果为空,则会显示错误。如果它不为空,另一个对话框将显示 op,用户可以在应用程序中进行更深入的操作。这就是我想要的。
问题是,当我检查它是否为空时,应用程序崩溃了。
这是我的代码,我已经实现了 ||
(使用 null
和 isEqual("")
,但是没有成功。
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/