Как сохранить id у динамически добавленного View при перевороте устройства?
Доброго
Есть фрагмент, он динамически заполняется View в зависимости от ответа БД. Я присваиваю ID view.generateViewId(). Мне нужно чтобы после поворота у этих view остался прежний ID. Как это сделать без больших костылей?
Если вьюх много, то надо думать в сторону переиспользования и перенаполнения их(делать запрос в бд или кешировать в памяти).
Если мало, то можно в values/ids.xml создать статичные айдишники
Уже пробовал, хотя вьюх мало, не смог решить иную проблему. Юзер может сам добавлять/удалять вьюхи. Проблема была в том, что содержимое этих вьюх тоже динамическое и их содержание определяет запрос в бд и сам пользователь может из менять также. В итоге, после удаления View c имеющимся содержимом и вызовом notifyitemchanged, прежнее содержимое view переносилось в новое view той же position. Решить можно тем, что перед удалением одного view уничтожать содержимое view(наверно не понятно объяснил), но это пипец какая лапша в коде, очень тяжело внести изменения, и легко всё сломать (да ещё все изменения сразу заносятся бд)
Neonoviiwolf, это решается просто. Нужно завести стейт, независящим от вьюх вообще. Этот стейт должен однозначно маппиться во вьюхи. Его надо хранить отдельно и менять при изменении данных.
Денис Загаевский, да, уже такой вариант обдумываю. У меня Moxy используется, хочу в презентере сохранять listViewId, а при восстановлении спрашивать id. Но всегда хочется узнать мнение опытных разработчиков
Денис Загаевский, да тогда бы вопроса не было, всё и так хранится в бд. Там проблема именно в сохранении id. Поясню, юзер хочет изменить одно из view (Добавить что нибудь к примеру) - при нажатии вызывается новое активити в котором юзер выбирает данные. Так как в главном активити все view динамически создаются, то я должен передать в новое активити "что-то" что поможет потом найти view, которое необходимо изменить. Но вызвав новое активити, пользователь переворачивает телефон -все динамические view удалены и созданы снова и как определить в какое view теперь нужно внести изменения?
Neonoviiwolf, ну у тебя в корне неправильная архитектура, никакие новые активити тут не нужны, и динамические вьюхи, с большой вероятностью тоже. Ничего не могу посоветовать, надо всё переписать.
Я тебе какой раз уже твержу - изменения не должны вноситься во вью. Они должны вноситься в модель, в стейт, полностью отвязанный от ui.