假设我在一个 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 会产生无意的副作用。谁能确认这是一种安全的做法和/或指出它最终会如何破坏我的应用程序?有没有人做过类似的事情?