Я думаю, вы думаете, что данные не сохраняются в вашем SharedPreferences
, потому что вы не можете их прочитать, потому что это всегда null
.Но нет необходимости делать SharedPreferences
переменную класса.Попробуйте это и вставьте saveData()
в ваш onStop()
метод:
public void saveData() {
//No need to make the SharedPreferences object a class instance variable...keep it local
SharedPreferences sharedPreferences = getSharedPreferences(KEY_SHARED_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
mGson = new Gson();
String s1 = mGson.toJson(t); //ArrayList<CustomObj>
String s2 = mGson.toJson(g); //ArrayList<String>
String s3 = mGson.toJson(i); //CustomObj
editor.putString(KEY_T, s1);
editor.putString(KEY_G, s2);
editor.putString(KEY_I, s3);
editor.putString(KEY_SELECT, select);
editor.putInt(KEY_POSITION_T, positionT);
editor.putInt(KEY_POSITION_M, positionM);
editor.apply();
}
Теперь вызовите loadData()
из onCreate()
(вы не проверяете, является ли mSharedPreferences null
... don 'даже объявить его переменной класса !!)
private void loadData() {
try {
SharedPreferences pref = getSharedPreferences(KEY_SHARED_PREFERENCES, MODE_PRIVATE);
//If the key is not available neither are the values!!
if(pref.contains(KEY_T)){
//read your data!!
}
}
catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
}