SharedPreferences is a Map of key/value pairs, and you can't have duplicate keys. You are using the same key for many items, so only one key/value pair will be written later:
private static final String UNLOCKED_LEVEL_KEY = "GAME_USERDATA";
private static final String SOUND_KEY = "soundKey";
private static final String HIGHSCORE = "GAME_USERDATA";
private static final String EDITED[] = {"GAME_USERDATA", "GAME_USERDATA", "GAME_USERDATA", "GAME_USERDATA", "GAME_USERDATA", "GAME_USERDATA"};
And then, on first run, initialising settings with default values - since you have not written them yet (see comments in the code):
public synchronized void init(Context pContext){
if (mSettings == null){
//use static Context.MODE_PRIVATE, instead pContext.MODE_PRIVATE
//as an argument in getSharedPreferences
mSettings = pContext.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
mEditor = mSettings.edit();
//same key used for level, highscore, and editedlevel
//which means all these variables will have the same value determined by "GAME_USERDATA" key
mUnlockedLevel = mSettings.getInt(UNLOCKED_LEVEL_KEY, 1);
mHighScore = mSettings.getInt(HIGHSCORE, 0);
mSoundEnabled = mSettings.getBoolean(SOUND_KEY, true);
for(int i=0;i<6;i++)
mEditedLevel[i] = mSettings.getBoolean(EDITED[i], false);
Log.v("","Set up initial values for UserData " + mUnlockedLevel + " " + mHighScore + " " + mSoundEnabled);
}
}
I don't see any code that would later commit these values, so if it's missing (eg. you don't use mEditor.commit()), these will always get default value.
Moreover, as mentioned in the first paragraph, for items where you use GAME_USERDATA, you will have only one key/value pair in settings.
Change your keys to be unique:
private static final String UNLOCKED_LEVEL_KEY = "unlocked_level_key";
private static final String SOUND_KEY = "soundKey";
private static final String HIGHSCORE = "highscore";
private static final String EDITED[] = {"ed1", "ed2", "ed3", "ed4", "ed5", "ed6"};
Then call unlockNextLevel(), setSoundMuted(), setHighScore(), setEdited() whenever you want to save a different value of each variable into the settings file, and next time during init(), you will have the values as they were saved.