java - How to store all keys from a specific value from SharedPreferences -
in android app, have custom listview of installed apps checkbox next it. using sharedpreferences store boolean true checked , false unchecked. key value packagename of app , value boolean, true or false.

i trying store keys (packagenames) value-- true, , can use packagenames in class specific task. however, want data structure stores keys stay same , hold checked packagename keys when app killed.
currently, using code this:
string findkey(sharedpreferences sharedpreferences, string value) { (map.entry<string, ?> entry: sharedpreferences.getall()) { if (value.equals(entry.getvalue())) { return entry.getkey(); } } return null; // not found } i have tried researching still unable produce solution.
get sharedpreferences names , keys?
gather strings sharedpreference getall() method?
how implement correctly packagenames in data structure can use in class , have stored same stuff when app killed?
this code in adapter class:
for(int i= 0; i<packagelist.size(); i++){ package_name = packageinfo.packagename; sharedprefs = context.getsharedpreferences(package_name, context.mode_private); holder.ck1.setchecked(sharedprefs.getboolean(package_name,false)); } holder.ck1.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { sharedpreferences.editor editor = context.getsharedpreferences(packageinfo.packagename, context.mode_private).edit(); if (holder.ck1.ischecked()) { itemchecked[position] = true; holder.ck1.setchecked(true); editor.putboolean(packageinfo.packagename, true); editor.apply(); } else { itemchecked[position] = false; holder.ck1.setchecked(false); editor.putboolean(packageinfo.packagename, false); editor.apply(); } } });
just extending comment.here have look.
final string checkbox_data="checkbox_data"; jsonobject js=new jsonobject(); js.put("package.name1", true); js.put("package.name2", false); js.put("package.name3", true); js.put("package.name4", true); sharepreferences prefs=context.getsharedpreferences(context.getpackagename(),context.mode_private); prefs.edit().putstring(checkbox_data, js.tostring()).commit(); and retrieve same as
sharedpreferences prefs = context.getsharedpreferences( context.getpackagename(), context.mode_private); string json=prefs.getstring(checkbox_data, null); jsonobject jsobj=new jsonobject(json); iterator<string> iter = jsobj.keys(); while (iter.hasnext()) { string key = iter.next();//this packagename try { boolean value = jsobj.getboolean(key); } catch (jsonexception e) { // went wrong! } }
Comments
Post a Comment