android - Android View 的 ID 可以在多个 Activity 之间安全共享吗?

标签 android inheritance layout view ambiguity

假设我在 Android 应用程序中有两个 Activity,EditPersonEditEmployee

EditPerson Activity 作为 EditEmployee Activity 的基类并定义将数据编码到布局中定义的 View 和从 View 中编码的方法似乎很自然。 EditPerson Activity 的实现会将(例如)“名称”字段推送到 EditText 元素或从中推送。 EditEmployee 版本将调用基类版本,然后编码自己的专用字段(比如税号等)。

为了促进共享代码,两个 Activity 都必须有一个布局资源,该资源定义一对或多对共享相同 id 的 EditText 元素。即在 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”)只需要在 Activity 范围(或布局?)。

根据我的测试,这似乎可行,但我担心这种方法和使用不明确的布局元素 ID 会产生意外的副作用。任何人都可以确认这是一种安全的做法和/或指出它最终将如何破坏我的应用程序吗?有没有人做过类似的事情?

最佳答案

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

关于android - Android View 的 ID 可以在多个 Activity 之间安全共享吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3341336/

相关文章:

ios - 在 SwiftUI 中,frame(...) 等资格中的数字的单位是什么?

flutter - 如何布局彼此相邻但重叠的小部件

创建 ArrayList 时 Android Robolectric : OutOfMemoryError - GC overhead limit exceeded,

android - Activity之间的动画,其中一个是singleTask

javascript - 通过javascript继承

c++ - 我能否判断转换为父类的对象类型最初是否是 C++ 中的子类?

android - 关于 Android 公钥的说明?

java - 在 JDK 7u2 上重写接口(interface)方法时出现 @override 编译器错误

Java 抽象类 : Returning “this” pointer for derived classes "follow up"

java - 文本在标签内垂直居中