Hat sich erledigt, habe das Problem gelöst.
Beiträge von oliver
-
-
Hallo,
ich hab irgendwie einen Denkfehler oder ein Verständnisproblem.
Ich habe eine Auswahlliste in der Activity mit einem StringArray (lv_arr)
CodemainListView.setAdapter(new ArrayAdapter<String>( Activity.this, android.R.layout.simple_list_item_multiple_choice, lv_arr));
Wenn ich mehrere Punkte selektiert habe und speichere, ist alles vorhanden.
Nun setze ich einen Suchfilter darüber um die Liste einzuschränken und übergib das natürlich einem neuen Array (array_sort)CodemainListView.setAdapter(new ArrayAdapter<String>( Activity.this, android.R.layout.simple_list_item_multiple_choice, array_sort));
Wenn ich das ganze nun speichere, wird nur der neue Wert übernommen und die alten verworfen.
Hier die Speicherfunktion:Code
Alles anzeigenprivate void SaveSelections() { SharedPreferences settingsActivity = getPreferences(MODE_PRIVATE); SharedPreferences.Editor prefEditor = settingsActivity.edit(); System.err.println("load " + settingsActivity.getAll()); String savedItems = getSavedItems(); System.err.println("neu " + savedItems); prefEditor.putString(SETTING_LISTE, savedItems); prefEditor.commit(); }
Und hier der Output:
Code
Alles anzeigen// 1. Durchlauf mit normaler Liste System.err load {liste=} System.err neu Name1 // 2. Durchlauf mit normaler Liste System.err load {liste=Name1} System.err neu Name1, Name2, Name3 3. Durchlauf mit Suchfunktion System.err load {liste=Name1, Name2, Name3} System.err neu Name4 // Endergebnis System.err load {liste=Name4}
Wie kann ich ihm beibringen die alten Werte mitzuspeichern?
Danke und Gruß Oliver
<---------------------------->
Nee, hab das Problem gefunden, aber noch nicht gelöst.Hatte vergessen die Methode mitzuposten die in der SaveSelections aufgerufen wird und da ist das Problem mit der ListView:
Code
Alles anzeigenprivate String getSavedItems() { String savedItems = ""; int count = this.mainListView.getAdapter().getCount(); for (int i = 0; i < count; i++) { if (this.mainListView.isItemChecked(i)) { if (savedItems.length() > 0) { savedItems += "," + this.mainListView.getItemAtPosition(i); } else { savedItems += this.mainListView.getItemAtPosition(i); } } } return savedItems; }