android - Text from EditText not saving in Shared Preferences -
i have edittext , want save text in edittext string in shared preferences if string not empty or null. app crashing following code:
activity.java:
button buttonnext = (button) findviewbyid(r.id.buttonnext); assert buttonnext != null; buttonnext.setonclicklistener(new onclicklistener() { @override public void onclick(view view) { if (checkforguardiannames()) { log.i("guardian names: ", "check passed"); log.i("activityedittext", inputguardian1.gettext().tostring()); toast toast = toast.maketext(userinfoactivity.this, inputguardian1.gettext().tostring(), toast.length_long); toast.show(); saveguardiannames(); } else { prompttofillfield("guardian"); log.i("guardian names: ", "check failed"); // toast toast = toast.maketext(userinfoactivity.this, "works part 2 "+ inputguardian1.gettext().tostring(), toast.length_long); // toast.show(); } }
now know checkforguardiannames()
passes app crashes on calling saveguardiannames()
method.
my saveguardiannames()
:
private void saveguardiannames(){ string guardian1 = inputguardian1.gettext().tostring(); string guardian2 = inputguardian2.gettext().tostring(); string guardian3 = inputguardian3.gettext().tostring(); string guardian4 = inputguardian4.gettext().tostring(); log.i("value: ", "dummy"); log.i("saveguardiannames", "called"); if (!inputguardian1.gettext().tostring().matches("")){ log.i("putting text", "in sp"); sharedpreferences.edit().putstring("guardian 1", guardian1).apply(); log.i("putting text", "passed"); } }
now see saveguardiannames: check passed
in logcat method called line above isn't (log.i("value: ", "dummy");
) , there isn't mention of in logcat. also, understand, if statement never called or crashes before log.i("putting text", "in sp");
executed.
my error logcat:
08-24 01:40:43.712 1497-1497/com.bluefirelabs.apptiva i/guardian names:: check passed 08-24 01:40:43.732 1497-1497/com.bluefirelabs.apptiva i/saveguardiannames: called 08-24 01:40:43.732 1497-1497/com.bluefirelabs.apptiva e/androidruntime: fatal exception: main process: com.bluefirelabs.apptiva, pid: 1497 java.lang.nullpointerexception: attempt invoke interface method 'android.content.sharedpreferences$editor android.content.sharedpreferences.edit()' on null object reference @ com.bluefirelabs.apptiva.userinfoactivity$override.saveguardiannames(userinfoactivity.java:374) @ com.bluefirelabs.apptiva.userinfoactivity$override.static$access$200(userinfoactivity.java:27) @ com.bluefirelabs.apptiva.userinfoactivity$override.access$dispatch(userinfoactivity.java) @ com.bluefirelabs.apptiva.userinfoactivity.access$200(userinfoactivity.java:0) @ com.bluefirelabs.apptiva.userinfoactivity$1$override.onclick(userinfoactivity.java:112) @ com.bluefirelabs.apptiva.userinfoactivity$1$override.access$dispatch(userinfoactivity.java) @ com.bluefirelabs.apptiva.userinfoactivity$1.onclick(userinfoactivity.java:0) @ android.view.view.performclick(view.java:5702) @ android.widget.textview.performclick(textview.java:10885) @ android.view.view$performclick.run(view.java:22533) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:158) @ android.app.activitythread.main(activitythread.java:7229) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1230) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1120)
i bit perplexed why lines being executed while 1 before isn't , why app crashing before saving shared preferences. appreciated.
if (!inputguardian1.gettext().tostring().matches("")){ log.i("putting text", "in sp"); if(sharedpreferences != null){ sharedpreferences.edit().putstring("guardian 1", guardian1).apply(); log.i("putting text", "passed"); }else{ sharedpreferences = mcontext.getsharedpreferences(pref_name, private_mode); sharedpreferences.edit().putstring("guardian 1", guardian1).apply(); } }
Comments
Post a Comment