如何从对话框片段更新recyclerview的项目?

时间:2019-06-04 10:33:47

标签: android android-recyclerview

在我的应用中,我从json服务器中获取了一些数据。然后,我从json中获取字段,并使用自定义适配器填充我的RecyclerView列表。此列表填充有有关作业的数据。当我单击recyclerView的作业时,我从托管片段移到dialogfragment以查看它。按下后,此dialogFragment包含homesUp按钮,我将返回到托管活动。在这个dialogFragment中,我有一个按钮,它向服务器发送有关此作业的请求,以将其添加到服务器上的另一个数据库。 但是,当我按下此按钮并将请求发送到服务器时,然后返回到托管活动后,我看到所选数据没有更改。我有几种解决此问题的方法:

  1. 添加到ArrayList的Singleton类变量中,该变量将由显示的作业的数据填充,然后我将检查Singleton的Arraylist中是否包含此ID
  2. 另一种方法-notifyItemChanged()

所有这些方法都不起作用,因为我的列表中填充了旧数据,而我只关闭了dialogFragment,然后返回包含旧数据列表的片段。

  

只有一种方法-向服务器发送请求以再次填写列表。

所以,我需要您的帮助或有用的建议:)

1 个答案:

答案 0 :(得分:1)

您需要将更改的数据从对话框片段广播到上一屏幕。为此,可以使用LocalBroadcastManager或rxjava甚至实时数据。

或者从android体系结构中发布的分页库中创建一个pagedlistadapter来补充和直接从查询加载数据。 参考:https://developer.android.com/topic/libraries/architecture/paging