Шаблон пользовательского интерфейса Android для сохранения частичной информации в базу данных

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

Прямо сейчас я раскрываю функциональность добавления категорий, сохраняя editText и кнопку "Добавить категорию" в действии "Добавить расходы".

Итак, для пользовательского сценария, например, когда пользователь ничего не вводит о расходах, а просто добавляет категорию, я хочу, чтобы она была сохранена в базе данных.

Сохранение категории может быть немедленно выполнено в базе данных с помощью AsyncTask для вызова помощника базы данных для вставки значения в таблицу.

В то же время я запутался в том, что мне нужно добавить progressDialog, чтобы сообщить пользователю, что я что-то сохраняю, или позволить ему заполнить информацию в других полях.

Что такое UI-шаблон или обычно используемые стратегии при сохранении частичной информации о записи в базу данных. Кроме того, я должен просто перейти к другой деятельности, если добавление категории в базу данных приводит к ошибке?

Кроме того, побочный вопрос, должен ли я поместить кнопку "Добавить категории" в действие, отличное от действия "Добавить расходы"?

1 ответ

Решение

С http://developer.android.com/guide/practices/design/responsiveness.html:

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

Поскольку исходная ситуация этого поста была описана, диалог прогресса, вероятно, не нужен. Возможно, рядом с сохраняемой записью может быть небольшой визуальный маркер, указывающий на состояние сохранения (это может быть "новый", "сохранение", "сохранен", "проблема / ошибка"). В случае ошибки при сохранении, если для пользователя, вероятно, важно сохранить запись, я определенно сделаю для пользователей очевидным, что возникла проблема, и предоставлю им шаги по исправлению ситуации.

Также обратите внимание, что во время хотя бы одного недавнего сеанса Google I/O 2011 (видео для которого можно найти по адресу http://www.youtube.com/googledevelopers), инженеры пользовательского интерфейса Android, включая парня, который создал официальное приложение Twitter Рекомендуется ограничить пользовательский интерфейс блокировки, например, с помощью диалоговых окон выполнения, так как их чрезмерное использование может привести к неоптимальному взаимодействию с пользователем, из-за чего приложение перестает отвечать на запросы и медленно работает.

Другие вопросы по тегам