Android MVVM Pattern - Ввод пользователя - PullRequest
0 голосов
/ 08 октября 2018

Это общий вопрос о дизайне, и я просто пытаюсь обдумать, как это сделать.

Допустим, у меня есть локальная база данных.У меня есть сценарий использования для извлечения некоторой информации из этой базы данных и построения модели из нее.Эта модель имеет такие вещи, как минимум, максимум и выбранные пользователем значения.Затем я передаю эту модель своей модели представления, которая, в свою очередь, помещает ее в живой объект данных и сообщает мне фрагмент для обновления пользовательского интерфейса.

Мой фрагмент, затем берет этот живой объект данных и создает форму сзначения, включая минимальное и максимальное значения, а также введенные пользователем значения.Затем у пользователя есть возможность изменить несколько полей (с помощью средств выбора, средства выбора даты), прежде чем он нажмет кнопку сохранения, чтобы сохранить всю форму.

Мне интересно, каков наилучший способ обновленияданные, как пользователь заполняет форму.Первоначально я думал, что при вводе каждого поля я должен обновлять свой объект данных в реальном времени, чтобы в случае разрушения или поворота экрана мой пользовательский интерфейс перестраивался из моего обновленного объекта данных в реальном времени.

ОднакоМне сказали, что вместо этого я должен просто сохранять значения в переменных, пока пользователь не нажмет кнопку «Сохранить».Затем я должен обновить объект данных в реальном времени, а также сохранить эти данные в базе данных.В этом случае, я думаю, я бы использовал SaveInstanceState, чтобы сохранить значения, введенные пользователем.

Я знаю, что, вероятно, нет однозначного ответа, но я ищу то, что лучше всего подходит дляшаблон как этот.Дайте мне знать, если вам нужна дополнительная информация.Я видел много примеров MVVM с LiveData, когда данные изменяются в серверной части, но не так много, когда есть пользовательский ввод для работы.

Любое предложение будет оценено.Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Сохранение выбора пользователя в виде поля с привязкой к данным в классе ViewModel, созданном из ViewModelProvider с использованием контекста Activity.Экземпляры ViewModel, полученные таким способом, сохраняются, даже если действие воссоздается из изменения ориентации.

...