Я работаю над приложением и использую компоненты архитектуры Android. У меня есть ViewModel, который я использую для хранения и управления данными пользовательского интерфейса. У меня есть действие, которое отображает список текстовых элементов, которые загружаются из базы данных комнат как LiveData. Представления, содержащие LiveData, доступны для редактирования. По сути, это RecyclerView, содержащий EditTexts.
Что мне интересно, так это сценарий, в котором пользователь меняет одно из значений EditText, а затем происходит что-то, что вызывает перезапуск действия, например, изменение конфигурации. Из того, что я понял, действие создается снова, что означает, что обратный вызов onChanged () снова вызывается, и список заполняется исходными данными LiveData, полученными из базы данных. Из-за этого я ожидал, что EditText (тот, чей текст был отредактирован пользователем) отобразит исходные LiveData, которые были ему назначены до того, как пользователь изменил текст. Однако, когда я повернул экран моего устройства, отредактированный текст остался.
Это то, что я хотел, но я не думал, что это было поведение по умолчанию. Я хотел бы знать, почему отредактированный текст сохранился после изменения конфигурации, поскольку он никогда не сохранялся в базе данных. Это просто специальное свойство EditTexts? Этот пост пользователя описывает нечто подобное, когда их EditTexts сохранили свои самые последние состояния после поворота экрана, когда их TextViews были очищены: Восстановление состояния TextView после поворота экрана?