169 похожих чатов

Простой вопрос. На основном экране есть список из базы данных,

и есть отдельный экран(форма редактирования), в котором можно ввести данные для добавления/изменения одно записи. Как принято делать: сохранять данные в БД прямо из формы редактирования записи, или передавать данные в основную активити и там уже их пихать в БД?

22 ответов

5 просмотров

Зависит от деталей. Из выданной инфы, сохранить на экране изменения звучит логично

Pavel-Vasilev Автор вопроса

вот и я так думаю, но часто встречаю уроки где зачем-то в основной активити ожидают данных от формы редактирования.

От уроков зависит. Если уроки вот прямо базовые, то искать глубинный смысл не всегда выйдет - они больше про детали "показать", "записать в бд" и прочее

+1 в уроках часто используется демонстрация какой то одной логики в то время когда в реальных проектах часто реализация куда сложнее

Pavel-Vasilev Автор вопроса

https://developer.android.com/codelabs/android-room-with-a-view-kotlin#15 да пример прям от гугла

Тоже когда то его проходил)

Pavel-Vasilev Автор вопроса

забавно что работа через "onActivityResult" по из же мнению уже устарела, но туторы они вряд ли поправят.

Та от дизайна часто зависит. Бывает, что на "основном" экране в тебя список всяких свойств и кнопка "сохранить", а на экране "изменений" каждое отдельное свойство меняешь. В итоге главной точкой будет кнопка с экрана списка - там запишешь/отправишь на бекенд.

Скажу больше, на "устаревшем" подходе огромное количество проектов все ещё и что-то сомневаюсь, что без пинка хорошего кто-то это менять будет в попыхах)

Pavel-Vasilev Автор вопроса

не, в таком случае конечно все очевидно. Просто думал есть какая-то секретная парадигма или шаблон проектирования. рекомендующей делать как в примере.

Не, такого шаблона проектирования точно не было у gang of four)

Секретный шаблон - сохранять и грузить данные не в UI (это не его ответственность), а в отдельном слое, который обычно называют интерактор и который знает куда и как ходить за конкретными данными.

Вопрос был не об этом, так-то)

А о чем же?

В какой момент сохранять

Когда данные готовы, тогда и да 😁 Вопрос был - сохранять в форме ввода или в активити передавать, чтобы она сохраняла. А они обе как бы UI, так-то 😏

На самом деле не все что Гугл советует используется на 100 процентов. Если я не ошибаюсь то они ретрофит только недавно признали в то время когда все проекты его использовали

Pavel-Vasilev Автор вопроса

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

В таком случае особой разницы нет. Передача данных в активити для сохранения - лишнее телодвижение получается.

Pavel-Vasilev Автор вопроса

Я подумал, может какие анимации при добавлении/удалении данных в список некорректно отрисуются если удалить в отдельной форме а потом вернуться на список.

Дак метод вью модели же запускаете в активити и все. А вью модель в репозитории там берет что нужно и кладет что нужно

Последующая синхронизация UI должна зависеть от результатов сохранения данных. На это хорошо LiveData ложится. Все, кому надо, её слушают и обновляются.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
@FAssembler ты много с формами работал, как цикл обработки сообщений от окошек надо делать, чтобы IsDialogMessage не ломал ввод в эдиты и навигация по табам работала?
The Bird of Hermes
8
Карта сайта