file - check if SharedPrefecences exists in Android -
i want check if have save data in shared preferences read file, because if file not exist , app wont work.
i search stack overflow , offered this:
file f = new file( "/data/data/your_application_package/shared_prefs/name_of_your_preference.xml"); if (f.exists()){ sharedpreferences prefs = getpreferences(mode_private); string restoredtext = prefs.getstring("text", null); } else log.d("tag", "setup default preferences"); now don't know use correctly or not. , save pref:
sharedpreferences.editor editor = getpreferences(mode_private).edit(); editor.putstring("text", showcounttv.gettext().tostring()); editor.apply(); edited: of course know can :
sharedpreferences prefs = getpreferences(mode_private); string restoredtext = prefs.getstring("text", null); but when @ first time app installed because nothing have been saved , program crashed.this logcat:
06-19 09:53:25.794 20485-20485/com.pirisalavat.amirhossein.amir d/androidruntime﹕ shutting down vm 06-19 09:53:25.795 20485-20485/com.pirisalavat.amirhossein.amir e/androidruntime﹕ fatal exception: main process: com.pirisalavat.amirhossein.amir, pid: 20485 java.lang.runtimeexception: unable start activity componentinfo{com.pirisalavat.amirhossein.amir/com.pirisalavat.amirhossein.amir.mainactivity}: java.lang.nullpointerexception: attempt invoke virtual method 'java.lang.string java.lang.string.tostring()' on null object reference @ android.app.activitythread.performlaunchactivity(activitythread.java:2325) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390) @ android.app.activitythread.access$800(activitythread.java:151) @ android.app.activitythread$h.handlemessage(activitythread.java:1303) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5257) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'java.lang.string java.lang.string.tostring()' on null object reference @ com.pirisalavat.amirhossein.amir.mainactivity.getdataformsharedpref(mainactivity.java:73) @ com.pirisalavat.amirhossein.amir.mainactivity.oncreate(mainactivity.java:30) @ android.app.activity.performcreate(activity.java:5990) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) @ android.app.activitythread.performlaunchactivity(activitythread.java:2278) at android.app.activitythread.handlelaunchactivity(activitythread.java:2390) at android.app.activitythread.access$800(activitythread.java:151) at android.app.activitythread$h.handlemessage(activitythread.java:1303) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5257) at java.lang.reflect.method.invoke(native method) at java.lang.reflect.method.invoke(method.java:372) at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903) at com.android.internal.os.zygoteinit.main(zygoteinit.java:698)
there sharedpreferences method called contains can use purpose:
if (getpreferences(mode_private).contains("text")) { // } and don't recommend creating file pointing sharedpreferences - can't know sure file created in directory called "/data/data/your_application_package/shared_prefs" - there plenty of vendors , each of them has plenty of devices, file can contained somewhere else/its name different/etc. contains() enough.
Comments
Post a Comment