Скажем, у меня две активности в приложении для 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» в приведенном выше примере) должен быть уникальным в рамках действия (или макета?).
Из моего тестирования это работает, но я параноик, что был бы непреднамеренный побочный эффект этого подхода и использование двусмысленных идентификаторов элементов макета. Может ли кто-нибудь подтвердить, что это безопасная практика и/или указать, как она в конечном итоге взорвет мою заявку? Кто-нибудь когда-либо делал подобные вещи?
Спасибо, что поделились своим опытом. Поскольку я все еще довольно новичок в мире Android, иногда бывает сложнее понять, что такое здравый подход. – el2iot2