gpt4 book ai didi

java - 从 Activity 2 到 Activity 1 进行通信并更新列表

转载 作者:行者123 更新时间:2023-12-01 19:55:14 25 4
gpt4 key购买 nike

我的情况是我有一个 List<Object>我有可以编辑/删除的详细 Activity ,我想知道是否还有其他方法可以做。

我是从 adapter 过来的一个intent我在 Activity2 上传递该对象的位置以及对象本身,我做了一些事情,当我按删除或编辑时,我发送一个 intent有了这个 Action 、对象和数组的位置,你能告诉我另一种高效的方法吗?

我想到了一个静态列表,但说实话我不喜欢静态的东西......

没有数据库内容

最佳答案

最好的方法是使用一些本地数据库,例如 RealmROOM 。那么你就不会通过 Intent 传递整个对象.

Acitivity1您从本地数据库加载对象列表。当用户单击项目时,您会传递 itemIdActivity2通过 bundle 。

然后在 Activity2您可以通过id在本地数据库中查找项目,然后编辑您想要的内容,并将更改保存到数据库中。

返回Activity1后您可以从数据库重新加载列表。

更新

如果您不想使用本地数据库,请阅读 MVVM 模式 + 数据绑定(bind)。

在 MVVM 中,您有 ViewModel它保留您的数据,例如 List<Object> .

感谢DataBinding您可以将您的列表与适配器绑定(bind)。然后列表上所做的所有更改都将在 UI 中立即可见。

这就是 Kotlin 中的样子:

将对象列表与适配器绑定(bind):

@BindingAdapter("contractorItems")
fun setContractors(recyclerView: RecyclerView, items: List<Contractor>) {
with(recyclerView.adapter as ContractorAdapter) {
replaceData(items)
}
}

将setContractors方法与RecyclerView绑定(bind)

<android.support.v7.widget.RecyclerView
android:id="@+id/contractors_recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
app:contractorItems="@{viewmodel.contractors}"
tools:listitem="@layout/contractor_signature_item" />

View 模型:

class ContractorsViewModel: ViewModel() {

val contractors = ObservableArrayList<Contractor>()

}

关于java - 从 Activity 2 到 Activity 1 进行通信并更新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com