假设我在Android应用中有两个活动,EditPerson
和EditEmployee
。
将EditPerson
Activity作为EditEmployee
Activity的基类并定义将数据与布局中定义的Views进行编组的方法似乎很自然。 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. -->
中会有类似的内容:
{{1}}
由于“Employee”是一个“Person”,并且有一些共同的字段(通过继承封送),看起来好像分配的id(上例中的“name_editor”)只需要在活动范围(或布局?)。
从我的测试来看,这似乎有效,但我很偏执,这种方法和模糊布局元素id的使用会产生无意的副作用。任何人都可以确认这是一种安全的做法和/或指出它最终会如何炸毁我的申请?有没有人做过类似的事情?
答案 0 :(得分:6)
这是常见的,可以使用。特别适用于要重用代码/类但使用不同布局的情况。