使用 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
}
我的一个 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
}