Zapisz ArrayList we wspólnych preferencjach

szukam godzin, aby dowiedzieć się, dlaczego zapisywanie listy boolowskiej we wspólnych preferencjach nie działa.

Metody nie zapisują ani nie ładują czegoś ... Metoda loadmethod zawsze zwraca alternatywne wartości: więc list_size jako 0, a booleany jako false.

Najpierw tworzę listę w mojej MainActivity i wywołuję metodę Save:

SaveLoadTraining sLoad = new SaveLoadTraining();
    ArrayList<Boolean> listBoolTrain = new ArrayList<Boolean>();
    listBoolTrain.add(true);
    listBoolTrain.add(true);
    sLoad.saveArray(listBoolTrain);

Podklasa SaveLoadTraining wygląda tak:

    package de.sebspr.app08.halle;

import java.util.ArrayList;

import android.content.Context;
import android.content.SharedPreferences;
import de.sebspr.app08.MainActivity;

public class SaveLoadTraining {

    private Context context;
    public static final String PREFS_NAME = "ListFile";
    private ArrayList<Boolean> list;

    public SaveLoadTraining(){
        this.context = MainActivity.getMContext();
    }

    public void saveArray(ArrayList<Boolean> list){

        this.list = list;

        SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();

        int size = list.size();
        editor.putInt("list_size", size);

        for (int i = 0; i < size; i++) {
            editor.remove("list_"+i);
        }
        for (int i = 0; i < size; i++) {
            editor.putBoolean("list_"+i, list.get(i));
        }       
        editor.commit();
    }

    public ArrayList<Boolean> loadArray(){

        SharedPreferences file = context.getSharedPreferences(PREFS_NAME, 0);
        list = new ArrayList<Boolean>();
        int size = file.getInt("list_size", 0);

        for(int i = 0; i<size;i++){
            boolean bool = file.getBoolean("list_"+i, false);
            list.add(bool);
        }
        return list;
    }
}

Nie mogę zrozumieć, co się dzieje źle ...

Być może radzę sobie z kontekstem w niewłaściwy sposób? Po prostu nazywam tę metodę, aby uzyskać kontekst MainActivity:

...
mContext = this;
...
    public static Context getMContext(){
        return mContext;
    }

questionAnswers(2)

yourAnswerToTheQuestion