7

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

EditPerson将Activity 作为 Activity 的基类EditEmployee并定义将数据编组到布局中定义的视图和从视图中提取数据的方法似乎很自然。Activity的EditPerson实现将(例如)将“名称”字段推入和推出EditText元素。这些EditEmployee版本将调用基类版本,然后编组自己的专用字段(例如税号等)。

为了便于共享代码,两个活动都必须有一个布局资源,该资源定义了一对或多对EditText共享相同 id 的元素。即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. -->

由于“Employee”是一个“Person”,并且有一些共同的字段(通过继承封送),似乎分配的 id(上例中的“name_editor”)只需要在一个范围内是唯一的活动(或布局?)。

从我的测试来看,这似乎可行,但我很怀疑这种方法和使用不明确的布局元素 ID 会产生无意的副作用。谁能确认这是一种安全的做法和/或指出它最终会如何破坏我的应用程序?有没有人做过类似的事情?

4

1 回答 1

6

这很常见并且可以使用。当您想要重用代码/类但使用不同的布局时尤其适用。

于 2010-07-27T07:09:44.717 回答