Android:是否有可能/建议从适配器的绑定服务进行交互?

时间:2018-05-28 08:27:33

标签: android kotlin android-adapter android-service-binding

我有一些由数据类建模的复杂数据,包含不可变和可变字段:

data class book (
    val ISBN: String,
    val Author: String,
    ...
    var borrowed: Boolean
)

我正试图在RecyclerView中找到一种显示它的实例的方法 我认为适配器唯一关心的是显示数据,然而,传递一大堆对象对我来说似乎并不合理,特别是因为不是所有实例的所有字段都需要显示

所以我决定使用ISBN列表作为适配器的 DataSet ,并在需要时从绑定服务中获取相应的对象。

但是,我不确定这是正确的方法,因为适配器没有明确的生命周期,我无法确定绑定/解除绑定到服务的位置。

然后问题变成: 在Android适配器中,我应该在哪里绑定绑定服务,以获取要显示的数据?是这样做的某种设计异端吗?

1 个答案:

答案 0 :(得分:0)

我认为你这样做是错误的。你想要这样做的方式在表现方面确实很糟糕 传递一大堆对象对您来说似乎并不合理,但使用recyclerview获得最佳性能并避免奇怪行为是正确的方法。

如果要从服务中检索数据:
- 使用空数据集初始化recyclelerview(加载...)
- 运行您的服务以检索您的数据集
- 通知您的活动并传递您的数据集
- 您的activty使用新数据集更改您的recyclerview适配器
- 您的recyclerview“notifyDataSetChanged()”以显示新数据集