Лучшие практики для добавления / редактирования действий - PullRequest
0 голосов
/ 27 августа 2018

Скажем, я разрабатываю приложение для объекта. Приложение позволяет пользователю добавлять объект, открывать его детали и редактировать объект - очень распространенная настройка. Я хотел бы создать AddObjectActivity, которая будет содержать все поля ввода, необходимые для создания объекта. Как только объект создан - его можно редактировать, и операция редактирования должна содержать все поля, которые были созданы. Это означает связывание всех полей, которые создает действие, и выполнение любой настройки макета - так же, как создание действия.

Мне кажется, что у меня есть два варианта: полностью продублировать код - создать отдельные действия для добавления и редактирования действий ИЛИ максимально использовать повторно и расширить / ввести какой-то индикатор, указывающий, какое из действий (добавить или редактировать) ) выполняется.

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

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

1 Ответ

0 голосов
/ 27 августа 2018

Используйте то же действие, когда вам нужно обновить объект, вы должны пропустить его через Intent Extra, как это

intent.putExtra("object", myObject);

когда начнете второе занятие, вы получите такие дополнения, как это

Object myObject = (Object) getIntent().getSerializableExtra("object");

Хитрость в том, что когда (myObject! = Null) я нахожусь в режиме обновления, в противном случае я нахожусь в режиме добавления, если в режиме обновления установите значения объекта добавления, соответствующие полю активности, например (EditText, TextView и т. Д.)

если вам нужно знать, завершилось ли действие в режиме обновления, вы должны запустить его с помощью startActivityForResult () и получить данные обратно при реализации onActivityResult ()

Я надеюсь, что это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...