【发布时间】:2019-03-16 15:34:11
【问题描述】:
我在一个活动中的 RecyclerView 由我的自定义对象的 ArrayList 组成。因为这个活动处于编辑模式,所以我想将这个 RecyclerView 的所有内容传递给另一个处于非编辑模式的活动。实现这一目标的最佳方法是什么?
谢谢!
【问题讨论】:
标签: android android-intent arraylist android-recyclerview custom-object
我在一个活动中的 RecyclerView 由我的自定义对象的 ArrayList 组成。因为这个活动处于编辑模式,所以我想将这个 RecyclerView 的所有内容传递给另一个处于非编辑模式的活动。实现这一目标的最佳方法是什么?
谢谢!
【问题讨论】:
标签: android android-intent arraylist android-recyclerview custom-object
您不会将整个 RecyclerView 对象传递给另一个 Activity。只是传递你的ArrayList<CustomObject> 怎么样?您可以使用 GSON 做到这一点:
How to pass gson serialised object to Intent in android?
当然,您可以重复使用相同的 RecyclerView Adapter 类。你只需要在Activities 中分别实例化它。
【讨论】:
您不需要两个活动。您可以通过一项活动来实现您的目标。
您可以在适配器内部使用一些标志,例如 isEditMode。它将用于为特定模式适配接口。
当您需要更改模式时——只需更改isEditMode 字段,然后调用adapter.notifyDataSetChanged()。
注意。您还需要更改适配器的方法onBindViewHolder 以对模式更改做出反应。喜欢:
@Override
public void onBindViewHolder(@NonNull K holder, int position) {
if (isEditMode) {
// Set up item for edit mode
} else {
// Set up item for non-edit mode
}
【讨论】: