I want to know the best way to save and restore checked items, using on adapter the "simple_list_item_checked", I've been trying for a long time using SharedPreferences, but didn't work. Could you give me some examples? Thanks in advance!
Asked
Active
Viewed 483 times
0
-
What you have tried so far? – Amy Dec 09 '15 at 11:03
-
Dealing with SparseBooleanArray is a little annoying thing... Just need some help – M. Mariscal Dec 09 '15 at 16:36
1 Answers
0
Here, found my old code for you. You can use SparseBooleanArray
for this.
private SparseBooleanArray sbArray;
//set all of the items checked in the start
if (sbArray == null) {
for (int i = 0; i < listView.getCount(); i++) {
listView.setItemChecked(i, true);
}
}
selectedIdees = new ArrayList<>();
//if we already did some checking in filters, we get our previous selections.
if (sbArray != null) {
Log.i(LOG_TAG, "sbArray size " + sbArray.size());
for (int i = 0; i < sbArray.size(); i++) {
int key = sbArray.keyAt(i);
if (sbArray.get(key)) {
listView.setItemChecked(key, true);
}
Then somewhere I placed okButton and set onClickListener to it.
okBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sbArray = listView.getCheckedItemPositions();
Log.i(LOG_TAG, "sbArray created. size= " + sbArray.size());
for (int i = 0; i < sbArray.size(); i++) {
int key = sbArray.keyAt(i);
if (sbArray.get(key)) {
selectedIdees.add(key + 1);
Log.i(LOG_TAG, "added + " + (key + 1));
}
Then I suggest to save it in shared prefs, creating the parcelable wrapper around it.