2015-05-15 2 views
1

Я создал просмотрщик Viewer this topic. Я использую только один фрагмент с экземплярами.Сохранение содержимого фрагментов в viewpager

Итак, мне нужно сохранить текст (из editText) из каждого фрагмента, чтобы загрузить их после повторного открытия приложения, но я не знаю, как это сделать. Я думаю, что просто неправильно понял, как правильно использовать экземпляры.

Я действительно смущен и не знаю, что делать. Может быть, только некоторые рефералы о том, как правильно использовать это или лучше построить ViewPager, должны помочь.

-thx за любую помощь (:

+0

Как я понимаю, у вас есть несколько фрагментов в VIewPager, и каждый из этих фрагментов имеет поле EditText? Цель - сохранить поля EditText и восстановить его после перезагрузки приложения? Да ? –

+0

Да, фрагменты имеют одинаковый макет, но различный контент в поле EditText, и я хочу восстановить их после перезагрузки. –

ответ

0

У меня есть идея, как года реализовать свой вид пейджер с вашими требованиями) Сначала мы пошли посмотреть, как это работает:

  1. ViewPages фрагмент нагрузка # 1 и то же время он загружает фрагмент, # 2
  2. Когда вы раздвижной фрагмент # 2 загружают фрагмент # 3 и иметь в виде # 1
  3. скользит на # 3, фрагмент # 4 загрузка, # 2in ум, # 1 - уничтожить и идти на. Итак, нам нужно сохранить информацию, когда фрагмент уничтожит ее и загрузится, когда она появится.

Это означает, что вы должны построить свой фрагмент следующим способом:

  1. создать метод getNewInstance(args...) как в вашей следующей теме.
  2. @OverrideOnCreate(..) метод для обработки объекта Bundle. Разверните его.
  3. @OverrideOnCreateView(...) метод для ввода всех видов. Включите ваш «EditText»
  4. Override onStop(...) например. Это означает, что ваш фрагмент не будет видеть видимые рамки пейджера. В этом методе сохраните свой EditText.getText() до SharedPreferences и используйте как ключ - ваш аргументов из bundle.toString().
  5. Посмотрите еще раз на метод onCreateView. Получите сохраненный текст по тому же ключу и поместите в текстовое представление EDIT.

Как это работает? - ваш viewPager делает фрагмент и загружает текст в editTextView из файла памяти (sharedPreferences). Пользователь может внести некоторые изменения и выскочить. Когда этот фрагмент разбивает всю информацию, переписывайте ее в одну ячейку в память (SharedPreferences) одним и тем же ключом. Удачи

+0

Это работает, спасибо большое. Я думаю, что я был рядом раньше, но я пытался получить аргументы в onCreateView, и поэтому это не сработало. –

+0

Я думаю, что onPause было бы лучшим местом для сохранения данных? Твоя мысль? – Skynet

+0

возможно), но если включить какое-то диалоговое окно, вы получите звонок onPause? –

Смежные вопросы