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

时间:2010-07-27 07:00:40

标签: android inheritance layout view ambiguity

假设我在Android应用中有两个活动,EditPersonEditEmployee

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的使用会产生无意的副作用。任何人都可以确认这是一种安全的做法和/或指出它最终会如何炸毁我的申请?有没有人做过类似的事情?

1 个答案:

答案 0 :(得分:6)

这是常见的,可以使用。特别适用于要重用代码/类但使用不同布局的情况。