java - Saved SharedPreferences changes lost when app is cleared from memory -


i updating , saving array of values in sharedpreferences within settings activity. specifically, alertdialog in onclicklistener listview. changes seem saved fine - i.e. still intact after close , re-open mainactivity, app released memory , restarted sharedpreferences revert previous state.

i read somewhere calling editor.clear() before editor.commit() can prevent happening, has effect of deleting of other values in sharedpreferences (i.e. ones not editing in code).

can explain why losing sharedpreference updates, , how can fix this?

the code below:

final listview lv = (listview) findviewbyid(r.id.list_folders); lv.setonitemclicklistener(new adapterview.onitemclicklistener() {      @override     public void onitemclick(adapterview<?> parent, view view,                             int position, long id) {          // listview clicked item index         int itemposition = position;          // listview clicked item value         final string itemvalue = (string) lv.getitematposition(position);          // ask user confirm deletion of item using alertdialog         alertdialog.builder builder = new alertdialog.builder(sourcefolders.this);          builder.settitle("confirm");         builder.setmessage("remove " + itemvalue + "?");          builder.setpositivebutton("yes", new dialoginterface.onclicklistener() {              public void onclick(dialoginterface dialog, int which) {                 // yes - remove current item sharedpreferences                 sharedpreferences prefs = preferencemanager.getdefaultsharedpreferences(sourcefolders.this);                 set<string> set = prefs.getstringset("source_folders", null);                 if (set == null) {                     dialog.dismiss(); // list of folders in preferences empty - shouldn't happen                 }                 // remove selected item list                 set.remove(itemvalue);                 // update shared preferences                 sharedpreferences.editor edit = prefs.edit();                 edit.putstringset("source_folders", set);                 edit.commit();                 folderlist = new arraylist<string>(set);                 refreshlistviewfromprefs();                 dialog.dismiss();             }          });          builder.setnegativebutton("no", new dialoginterface.onclicklistener() {              @override             public void onclick(dialoginterface dialog, int which) {                 // nothing                 dialog.dismiss();             }         });          alertdialog alert = builder.create();         alert.show();     } }); 


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -