Я сохраняю строки из Activty1 в JsonArray для jsonArray_Score_Correct_book и jsonArray_Score_Correct_ type
При получении этих SharedPrefs из действия 2 перенастраиваются только строковые значения jsonArray_Score_Correct_type, значения jsonArray_Score_Correct_book возвращают [] (пусто).
Действие1
Код: Выделить всё
sharedPrefEditor = getSharedPreferences("SharedPrefFile", MODE_PRIVATE).edit();
sharedPref = getSharedPreferences("SharedPrefFile", MODE_PRIVATE);
jsonArray_Score_Correct_book.put(str_Book);
jsonArray_Score_Correct_type.put(str_Type);
sharedPrefEditor.putString("KEY_arrayListString_Score_Correct_book", jsonArray_Score_Correct_book.toString());
sharedPrefEditor.putString("KEY_arrayListString_Score_Correct_type", jsonArray_Score_Correct_type.toString());
sharedPrefEditor.apply();
Код: Выделить всё
Log.d("LOG", "zzz_jsonArray_Score_Correct_book (Before Activity2): "+jsonArray_Score_Correct_book);
Log.d("LOG", "zzz_jsonArray_Score_Correct_type (Before Activity2): "+jsonArray_Score_Correct_type);
Код: Выделить всё
intent = new Intent(getApplicationContext(), Activity2.class);
startActivity(intent);
Код: Выделить всё
sharedPrefEditor = getSharedPreferences("SharedPrefFile", MODE_PRIVATE).edit();
sharedPref = getSharedPreferences("SharedPrefFile", MODE_PRIVATE);
try {
jsonArray_Score_Correct_book = new JSONArray(sharedPref.getString("KEY_arrayListString_Score_Correct_book", "[]"));
jsonArray_Score_Correct_type = new JSONArray(sharedPref.getString("KEY_arrayListString_Score_Correct_type", "[]"));
Log.d("LOG", "zzz_jsonArray_Score_Correct_book (On Activity2): "+jsonArray_Score_Correct_book);
Log.d("LOG", "zzz_jsonArray_Score_Correct_type (On Activity2): "+jsonArray_Score_Correct_type);
Дополнительная информация
Я попробовал следующее:
Код: Выделить всё
this.MODE_PRIVATE
getApplicationContext().MODE_PRIVATE
Оба значения массива сохраняются правильно во время действия 1 (после проверки в разных местах, включая размещение журналов в панели навигации «Открытие» и «Закрытие», массивы имеют строки, как и ожидалось, единственная проблема — переход к другому действию (или перезапуск приложения). ), всегда сохраняется только jsonArray_Score_Correct_type, а не jsonArray_Score_Correct_book, эти два массива используют один и тот же процесс во всем приложении.
Подробнее здесь: https://stackoverflow.com/questions/787 ... or-another