android - Saving list to a sharedPref. using GSON Nullpointer error -
i have following code:
public class customgesture extends activity { private static spinner spinner1, spinner2; private static button btn; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.custom_gesture); spinner1 = (spinner) findviewbyid(r.id.spinner1); spinner2 = (spinner) findviewbyid(r.id.spinner2); // list.add("peepu"); // list.add("cheecki"); list<string> list = new arraylist<string>(); list.add("cheeku"); list.add("matthu"); sharedpreferences appsharedprefs = preferencemanager .getdefaultsharedpreferences(this.getapplicationcontext()); editor prefseditor = appsharedprefs.edit(); gson gson = new gson(); string json = gson.tojson(list); prefseditor.putstring("myobject", json); prefseditor.commit(); arrayadapter<string> dataadapter = new arrayadapter<string>(getapplicationcontext(), android.r.layout.simple_spinner_item, list); dataadapter .setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner1.setadapter(dataadapter); btn = (button) findviewbyid(r.id.btnsubmit); btn.setonclicklistener(new onclicklistener() { public void onclick(view v) { new thread(new runnable() { @override public void run() { sharedpreferences appsharedprefs = preferencemanager .getdefaultsharedpreferences(getapplicationcontext()); gson gson = new gson(); string json = appsharedprefs.getstring("myobject", ""); list<string> list = gson.fromjson(json, null); arrayadapter<string> dataadapter = new arrayadapter<string>(getapplicationcontext(), android.r.layout.simple_spinner_item, list); dataadapter .setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner2.setadapter(dataadapter); } }).start(); } }); }
}
the error i'm getting following :
04-13 13:50:20.066: e/androidruntime(2358): fatal exception: thread-5592 04-13 13:50:20.066: e/androidruntime(2358): java.lang.nullpointerexception 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.internal.$gson$preconditions.checknotnull($gson$preconditions.java:35) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.reflect.typetoken.<init>(typetoken.java:72) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.reflect.typetoken.get(typetoken.java:296) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.gson.fromjson(gson.java:801) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.gson.fromjson(gson.java:768) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.gson.fromjson(gson.java:717) 04-13 13:50:20.066: e/androidruntime(2358): @ com.google.gson.gson.fromjson(gson.java:689) 04-13 13:50:20.066: e/androidruntime(2358): @ com.winacro.bsquares.customgesture$1$1.run(customgesture.java:60) 04-13 13:50:20.066: e/androidruntime(2358): @ java.lang.thread.run(thread.java:841)
i think error because im using null parameter in fromjson ,but use instead of null parameter think cannot use list there?
sharedprefrences used store small amount of data, such flags , static strings, went workaround store json-formatted string works small json object otherwise need use sqlite, here tutoial
Comments
Post a Comment