【问题标题】:how to update a specific item (cardview) in recyclerview OnActivityResult如何在 recyclerview OnActivityResult 中更新特定项目(cardview)
【发布时间】:2017-05-13 00:11:47
【问题描述】:

我在 MainActivty 中有一个 Fragment,在这个 Fragment RecyclerView 的 Articles 中带有 cardView(在这张卡片里面我有喜欢按钮和点赞计数器),当用户点击 cardView 时会打开 DetailsActivity

我希望 onBackPressed 仅更新此项取决于 DetailsActivity 中更改的数据(如按钮和计数器)

如何只更新这个项目?

抱歉英语不好!

【问题讨论】:

标签: android android-recyclerview android-cardview onactivityresult onbackpressed


【解决方案1】:

首先更新适配器的特定位置项的数据。

之后调用notifyItemChanged(int) 更新RecyclerView 中的特定CardView

通知任何已注册的观察者position 处的项目已更改。相当于调用notifyItemChanged(position, null);

这是一个项目更改事件,而不是结构更改事件。它表明position 处的任何数据反映都已过时,应进行更新。 position 处的项目保持相同的身份。

【讨论】:

  • 好的,我(通过 OnBackPressed)将这个项目的位置和对象模型从 DetailsActivity 发送回 MainActivity(它包含一个包含 RecyclerView 的 Fragment)。并在 MainActivity 中接收它(通过 OnActivityResult)。这里的问题是如何将这个位置和对象模型从 MainActivity 发送到 Fragment 以执行 notifyItemChanged(position, payload)
  • 在片段中为更新项创建一个方法,并在收到OnActivityResult 时从MainActivity 调用它
  • 我在片段中添加了这个方法,我从 MainAnctivity public void updateItem(int position) { if (myAdapter != null) { myAdapter.notifyItemChanged(position); } } 我得到 myAdapter null !!
  • 发布有问题的完整代码。所以,我可以纠正它。
  • @Priyank Patel 所以我有一个回收站。用户在 UI 表单上输入数据的 CardView 列表。单击 CardView 会将用户带到单个 CardView Activity 以显示该 CardView 的详细信息。单击该 CardView 会启动一个编辑活动,以便用户可以编辑原始数据。当用户在我的编辑活动中单击“保存”按钮时,如何更新单个 CardView 活动视图的视图?我在 CardView Activity 中将 OnActivityResult() 与 Edit Activity 一起使用,因此用户返回到单个 CardView Activity 但旧视图和数据正在显示。
猜你喜欢
  • 1970-01-01
  • 2015-12-04
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多