可以跨多个活动安全地共享Android View的ID吗?

el2*_*ot2 7 layout inheritance android view ambiguity

假设我在Android应用程序中有两个活动,EditPerson并且EditEmployee.

EditPersonActivity作为Activity的基类EditEmployee并定义将数据与布局中定义的视图进行编组的方法似乎很自然.该EditPerson活动的实施将推动(例如)在"名称"字段,并从一个EditText元素.该EditEmployee版本将调用基类的版本,然后集结自己的专业领域(比如一个税号,等等).

为了促进共享代码,两个活动都必须具有定义EditText共享相同id的一对或多对元素的布局资源.即在layout\edit_person.xml那里会:

<EditText android:id="@+id/name_editor" />
Run Code Online (Sandbox Code Playgroud)

然后在layout\edit_employee.xml那里会有类似的东西:

<EditText android:id="@+id/name_editor" />
<EditText android:id="@+id/tax_id_editor" />
<!-- etc. -->
Run Code Online (Sandbox Code Playgroud)

由于"Employee"是一个"Person",并且有一些共同的字段(通过继承编组),看起来好像分配的id(上例中的"name_editor")只需要在一个范围内是唯一的.活动(或布局?).

从我的测试来看,这似乎有效,但我很偏执,这种方法和模糊布局元素id的使用会产生无意的副作用.任何人都可以确认这是一种安全的做法和/或指出它最终会如何炸毁我的申请?有没有人做过类似的事情?

Mat*_*adt 6

它很常见,也可以使用.特别适用于要重用代码/类但使用不同布局的情况.