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.

enter image description here

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

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -