Android 更新两个活动之间的同一变量以及两个活动中的UI';回收视图
我有两个活动共享一个完全相同的列表,Android 更新两个活动之间的同一变量以及两个活动中的UI';回收视图,android,android-intent,android-activity,android-recyclerview,Android,Android Intent,Android Activity,Android Recyclerview,我有两个活动共享一个完全相同的列表,ListA,它有一个名为amount的属性 在我的第一个活动中,我有: 带有ViewHolders的RecyclerView。在每个ViewHolder中,我都有一个按钮来操作ListA中某个项目的金额(每个ViewHolder中都有一个与之关联的项目)。此RecyclerView有两种类型的ViewHolder:标题和项。项目视图持有人显示与之关联的列表A中项目的金额 一个按钮转到第二个活动 在我的第二项活动中,我有: 第一个活动的列表(ListA)副
ListA
,它有一个名为amount
的属性
在我的第一个活动中,我有:
- 带有
s的ViewHolder
。在每个RecyclerView
中,我都有一个按钮来操作ViewHolder
中某个项目的ListA
金额(每个
中都有一个与之关联的项目)。此ViewHolder
有两种类型的RecyclerView
:ViewHolder
和标题
。项
项目
显示与之关联的视图持有人
列表A中项目的
金额
- 一个
转到第二个活动按钮
- 第一个活动的列表(
)副本(使用ListA
和Intent
传递)Parcelable
- A
,基本上与第一个活动中的相同(信息方面),具有附加功能。其中一项功能包括操纵RecyclerView
中项目的列表A
金额。但是,此
只有一个RecyclerView
类型(没有ViewHolder
)。此外,标题
项
中还存在一些额外的布局(因为添加了一些功能)ViewHolder
- 返回到第一个活动的
按钮
- 将列表A从第一个活动传递到第二个活动,反之亦然
- 当第二个活动操纵
并返回到第一个活动时,更新第一个活动的ListA
的RecyclerView
中的UI;反之亦然ViewHolders
最好的方法是什么?目前,我正在将
ListA
作为Parcelable Intent
传递给第二个活动。然而,我发现在我的第一个活动的RecyclerView
sItem ViewHolder
上很难相应地更新UI。这是因为为更新其项目视图持有者的UI而传递的回调需要表示数量的布局的指定id(在onBindViewHolder
中)是由按下按钮触发的,当我返回到第一个活动时,我没有按下该按钮。具有实时数据的房间解决了您的问题。如果您不想使用内部数据库,您可以尝试在一个活动中使用2个片段,而不是2个活动,并管理活动中的数据(或其演示者、viewmodel等)我的第一个相关想法是在片段中包含第二个列表(在活动中使用公共方法,将更新的数据传递给第一个RecyclerView
并通知它)第二个想法是,在第二个活动中处理onBackPressed,存储要更新的数据,并在onResume的第一个活动中更新UI。现在,这两个方法似乎都不够“优雅”
),最后,我可能会使用