Сохранить данные во фрагменте - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть фрагмент, который показывает некоторые сделки, полученные с сервера через класс ViewModel.У меня вопрос, я каждый раз, когда я перемещаюсь по BottomNavigation каждый раз, когда мои фрагменты заменяются и все данные снова выбираются, у меня есть индикатор выполнения, который появляется, когда данные извлекаются из службы, я вызываю все свои данные внутри класса ViewModel, а затемчерез объект этого класса ViewModel я устанавливаю эти данные в моем фрагменте, есть ли способ сохранить данные, поступающие из объекта класса viewModel, в onSavedInstanceState фрагмента, чтобы восстановить его при повторном создании фрагмента.Я знаю int, значения строк хранятся в onSavedInstanceState, но я не знаю, как сохранить данные, поступающие из класса viewModel.

1 Ответ

0 голосов
/ 01 февраля 2019

Вот краткий пример того, что вы хотите выполнить:

class MyModelFactory implements ViewModelProvider.Factory {
   private final Bundle bundle;
   public MyModelFactory(Bundle bundle) {
      this.bundle = bundle;
   }
   @Override
   public MyViewModel create(Class modelClass) {
      MyViewModel viewModel = new MyViewModel();
      viewModel.readFrom(bundle);
      return viewModel;
   }

Затем сохраните свой экземпляр:

@Override
public void onSaveInstanceState(Bundle bundle) {
    super.onSaveInstanceState(bundle);
    viewModel.writeTo(bundle);
}

Ссылка статья: https://proandroiddev.com/customizing-the-new-viewmodel-cf28b8a7c5fc

Это дубликат из Компоненты архитектуры ViewModel против сохраненного пакета InstanceState

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...