I have a working class that wraps the SharedPreferences functionality:
public class PrefSingleton{
    private static PrefSingleton mInstance = null;
    private SharedPreferences mMyPreferences;
    private PrefSingleton(){
    }
    public static PrefSingleton getInstance(){
        if (mInstance == null) {
            mInstance = new PrefSingleton();
        }
        return mInstance;
    }
    public void Initialize(Context ctx){
        mMyPreferences = PreferenceManager.getDefaultSharedPreferences( ctx );
    }
    public void writePreferenceString(String key, String value){
        SharedPreferences.Editor e = mMyPreferences.edit();
        e.putString( key, value );
        e.apply();
    }
    public void writePreferenceInt(String key, int value){
        SharedPreferences.Editor e = mMyPreferences.edit();
        e.putInt( key, value );
        e.apply();
    }
    public String readPreferenceString( String key, String defaultVal) {
        return mMyPreferences.getString( key, defaultVal );
    }
    public int readPreferenceInt( String key, int defaultVal) {
        return mMyPreferences.getInt( key, defaultVal );
    }
    public boolean contains( String s ) {
        return mMyPreferences.contains( s );
    }
}
For an unknown reason, pos is getting -1 when I call (0 is default val):
if( PrefSingleton.getInstance().contains( "pos" ) ) {
    int pos = PrefSingleton.getInstance().readPreferenceInt( "pos", 0 );
    list.get( pos ).isChecked = true;
}
Every other call to this class is working properly. Can someone please help me understand the problem ?
 
     
     
    