0

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!

M. Mariscal
  • 1,226
  • 3
  • 17
  • 46

1 Answers1

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.

Community
  • 1
  • 1
RexSplode
  • 1,475
  • 1
  • 16
  • 24