java - 更新 recyclerview 中帖子的评论计数
问题描述
活动 A 有一个回收器视图,其中每一行都作为一个帖子,现在每个帖子都有一个评论计数文本视图,它启动一个评论活动,用户可以在其中查看评论并添加评论。
现在的问题是,在添加评论后,当评论活动完成或按返回按钮返回帖子页面时,如何更新活动 A 中特定行回收器视图中的评论计数。但我不想再次重新加载回收站视图,因为它会分散用户对当前位置的注意力。
请指导我正确的方向。下面是我的 Recyclerview 适配器代码片段。
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
int viewType = getItemViewType(position);
final Posts posts = postsList.get(position);
final viewHolderPost viewHolderPost = (viewHolderPost) viewHolder;
viewHolderPost.commentcount_wrap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), CommentViewerActivity.class);
intent.putExtra("post_id", posts.getPost_id());
v.getContext().startActivity(intent);
}
});
}
解决方案
好的,这就是我要做的:
- 创建公共对象(最好是存储库),我会将带有评论的帖子列表存储在内存中。
- 单击 Post 时,我会调用
startActivityForResult
方法 fromPostActivity
打开CommentActivity
- 在添加/删除/编辑评论后,
CommentActivity
我将更新存储库中的列表并以正确的结果完成活动 - 在
PostActivity
我将覆盖onActivityResult
方法来检查是否CommentActivity
完成结果将告诉我刷新 RecyclerView 中的列表 - 如果是这样,我将从存储库中获取更新的列表
PostActivity
并在适配器中更新它
推荐阅读
- java - AlertDialog 显示从 RadioButton 选择的结果,让用户再次检查
- c# - 将数据从一张表复制到另一张表 - Oracle
- php - 在 Laravel Blade 中使用 Google AMP 标签
- c# - Hook Mechanic 和同步 Time.Delta Time C#
- java - Axis2 在请求标签中将 CDATA 值作为字符串发送
- python - 使用 conda env 的 apache-airflow systemd 文件
- javascript - 使用 switch case,case 内部的 break 结束了外部 for...of 循环迭代
- javascript - 为什么浏览器会向同一来源发送预检请求?
- spring-cloud - Spring cloud Zuul Query 参数编码
- python - 写入功能不起作用,读取功能起作用