我创建了一个if/else语句,检查编辑文本的值(编辑文本的值保存在myPrefs
中)是否为空。如果为空,则会显示错误。如果不为空,则会显示另一个对话框,用户可以在应用程序中继续操作。这就是我想要的。
问题是,在检查它是否为空时,应用程序会崩溃。这是我的代码,我已经实现了||
(使用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)
SharedPreferences
对象,因为它的名称和getString
方法。 - PPartisan