Является ли шаблон "Сведения об активности" в Android решением также для обработки пользовательского ввода?

Итак, я читал книгу для Android-разработки под названием Head First Android Development, среди прочего, авторы предлагают схему деталей действий. Это говорит о том, что, когда вы хотите, например, представить набор пицц своему пользователю, вы создаете RecyclerView, представляющий все доступные пиццы, а когда пользователь нажимает на одну из них, вы запускаете операцию подробностей, представляющую все детали для конкретной пиццы, используя намерение передать конкретный идентификатор пиццы.

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

1 ответ

Несколько вещей, которые я должен тебе сказать.

Передача некоторых строк (ингредиентов) на самом деле не является "огромным количеством данных".

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

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

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

Один из методов, который будет вызван onResume где вы должны обновить свой recyclerView получая последние данные из постоянного хранилища.

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