SharedPref не сохраняет значение для одного массива, но работает для другогоAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 SharedPref не сохраняет значение для одного массива, но работает для другого

Сообщение Anonymous »

SharedPref не сохраняет значение для одного массива, но работает для другого.
Я сохраняю строки из 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();
Примечание. Я ПРОВЕРЯЮ и ПРОВЕРЯЮ, действительно ли эти значения сохранены, и в журнале отображается, что оба jsonArrays имеют строковые значения, как и ожидалось.

Код: Выделить всё

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);
Затем я вызываю Activity2.

Код: Выделить всё

intent = new Intent(getApplicationContext(), Activity2.class);
startActivity(intent);
Activty2

Код: Выделить всё

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);
Форма «Действие 2», только jsonArray_Score_Correct_type возвращает правильные значения, однако jsonArray_Score_Correct_book пуста.
Дополнительная информация
Я попробовал следующее:

Код: Выделить всё

this.MODE_PRIVATE

getApplicationContext().MODE_PRIVATE
Также пытался получить значения из действия 1 (после остановки и запуска приложения), это также ведет себя так же, как и действие 2 (получение только значений для jsonArray_Score_Correct_type
Оба значения массива сохраняются правильно во время действия 1 (после проверки в разных местах, включая размещение журналов в панели навигации «Открытие» и «Закрытие», массивы имеют строки, как и ожидалось, единственная проблема — переход к другому действию (или перезапуск приложения). ), всегда сохраняется только jsonArray_Score_Correct_type, а не jsonArray_Score_Correct_book, эти два массива используют один и тот же процесс во всем приложении.

Подробнее здесь: https://stackoverflow.com/questions/787 ... or-another
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»