Android: реализация очень похожих макетов/действий

Я новичок в разработке Android и внедряю приложение адресной книги. Этому приложению потребуется экран «Добавить контакт» и экран «Редактировать контакт». Эти экраны будут очень похожи — «добавить контакт» по сути будет экраном «редактировать контакт», но для нового пустого контакта и с другим заголовком на панели действий. Должен ли я реализовать их как отдельные макеты и действия (доступ к ним будет осуществляться с помощью разных кнопок) или есть способ избежать дублирования кода (возможно, используя объекты стратегии или что-то в этом роде?)

Спасибо за любой совет.


person false_azure    schedule 21.09.2013    source источник
comment
Это можно сделать с помощью одного xml, посмотреть параметры видимости вида gone, visible, invisible. Например, здесь stackoverflow.com/questions/16165985/ или документации.   -  person Kuba Spatny    schedule 22.09.2013
comment
Спасибо за это, я проверю это.   -  person false_azure    schedule 22.09.2013


Ответы (1)


Используйте ту же активность, макет и код. Единственная разница между редактированием и добавлением заключается в том, что в первом случае у вас есть объект Account (ваш собственный класс), а во втором случае его нет.

Итак, в onCreate после того, как вы настроили представления, вы можете выполнить проверку, если в getIntent() (при условии, что для редактирования действия вызывающей стороны поместите объект в намерение) у вас есть этот объект Account, и если да, сохраните его. и заполните представления активности его свойствами. Также вы можете изменить здесь заголовок - edit или add.

При нажатии на кнопку save/меню действия, если у вас уже есть объект Account, вы выполните обновление, а в другом случае (сохраненный объект равен нулю) вы выполните добавление.

person gunar    schedule 21.09.2013