2010-07-27 1 views
7

Скажем, у меня две активности в приложении для Android, EditPerson и EditEmployee.Можно ли безопасно использовать идентификатор Android View для нескольких видов деятельности?

Казалось бы, естественно, что EditPerson Activity является базовым классом для операции EditEmployee. Определите методы, которые маршалируют данные в представлениях, определенных в макете, и из них. Реализация деятельности EditPerson приведет (например) к полю «Имя» к элементу EditText и из него. Варианты EditEmployee будут вызывать версию базового класса, а затем маршалировать свои специализированные поля (например, идентификатор налога и т. Д.).

Чтобы облегчить общий код, оба действия должны иметь ресурс макета, который определяет одну или несколько пар элементов EditText, которые имеют один и тот же идентификатор. т.е. в layout\edit_person.xml было бы:

<EditText android:id="@+id/name_editor" /> 

И тогда в layout\edit_employee.xml было бы что-то вроде:

<EditText android:id="@+id/name_editor" /> 
<EditText android:id="@+id/tax_id_editor" /> 
<!-- etc. --> 

С «Сотрудник» является «лицо», и есть поля в общий (выстраивали через наследование), казалось бы, если назначенный идентификатор («name_editor» в приведенном выше примере) должен быть уникальным в рамках действия (или макета?).

Из моего тестирования это работает, но я параноик, что был бы непреднамеренный побочный эффект этого подхода и использование двусмысленных идентификаторов элементов макета. Может ли кто-нибудь подтвердить, что это безопасная практика и/или указать, как она в конечном итоге взорвет мою заявку? Кто-нибудь когда-либо делал подобные вещи?

ответ

6

Это обычное и нормально использовать. Особенно рекомендуется, если вы хотите повторно использовать код/​​классы, но используйте разные макеты.

+0

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