使用 Intent 将整个 recyclerview 传递给另一个 activity 的最佳方法是什么?

What's the best way to pass a whole recyclerview to another activity using Intent?

我的一个 activity 中的 RecyclerView 由我的自定义对象的 ArrayList 组成。因为这个 activity 处于编辑模式,所以我想将这个 RecyclerView 的所有内容传递给另一个处于非编辑模式的 activity 。实现此目标的最佳方法是什么?

谢谢!

您不会将整个 RecyclerView 对象传递给另一个 Activity。通过你的 ArrayList<CustomObject> 怎么样?你可以用 GSON 做到这一点:

How to pass gson serialised object to Intent in android?

当然你可以重复使用相同的 RecyclerView Adapter class。您只需要在 Activities 中分别实例化它。

您不需要两个活动。您可以通过一个 activity 来实现您的目标。 您可以在适配器中使用 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
    }