Можно ли безопасно использовать идентификатор Android View для нескольких видов деятельности? - PullRequest
7 голосов
/ 27 июля 2010

Скажем, у меня есть два действия в приложении для Android, EditPerson и EditEmployee.

Казалось бы, естественно, чтобы действие EditPerson было базовым классом для действия EditEmployee и определяло методы, которые собирают данные в и из представлений, определенных в макете.Реализация EditPerson Activity будет выдвигать (например) поле «Имя» к элементу 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» в приведенном выше примере) должен быть уникальным только в рамках действия (или макета?).

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

1 Ответ

6 голосов
/ 27 июля 2010

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

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