Скажите, что у меня есть две Операции в приложении Android, EditPerson
и EditEmployee
.
Казалось бы естественным иметь EditPerson
Действие быть базовым классом для EditEmployee
Действие и определяет методы, которые упорядочивают данные к и от Представлений, определенных в расположении. EditPerson
Реализация действия продвинула бы (например), поле "Name" к и от 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" в вышеупомянутом примере) только должен быть уникальным в рамках действия (или расположение?).
От моего тестирования это, кажется, работает, но я параноик, что был бы неумышленный побочный эффект к этому подходу и использованию неоднозначных идентификаторов элемента макета. Кто-либо может подтвердить, что это - безопасная практика, и/или укажите, как она в конечном счете аварийно завершит мое приложение? Кто-либо когда-либо делал подобные вещи?
Это обычное дело, и его можно использовать. Это особенно важно, если вы хотите повторно использовать код / классы, но использовать разные макеты.