【发布时间】:2016-10-07 08:32:44
【问题描述】:
我正在制作一个应用程序,它的主要 RecyclerView “提要”由帖子元素组成。
您可以点击帖子,进入详细视图。
我选择将详细视图放在“透明”活动中,这样当单击详细视图时,当前活动会暂停并开始新活动。这意味着提要活动不会丢失其状态,并且recyclerview 会保持其位置,因此当用户单击返回时,活动/片段不需要重新加载。
在提要的帖子和详细视图上,我都有可以点击的拇指按钮。当用户进入详细视图时,我传入拇指按钮的状态,并在 onCreate() 中对其进行初始化。当用户退出详细视图时,我需要更新主提要中拇指按钮的状态(以保持它们同步)而不刷新整个回收器视图。 这需要我在 recyclerview 的一项中刷新数据集(并随后更新外观),而无需刷新/重新加载整个 recyclerview。这可能吗?
我尝试通过更新适配器使用的数据集并调用 notifyItemChanged(position) 来执行此操作,但这不起作用。有人告诉我这个方法调用 onBindViewHolder(然后它会调用我的绑定方法并更新视图)。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Here, I'm updating my mRecipes data set after returning from the detailed view
if (requestCode == 0) {
int adaptpos = Integer.parseInt(data.getStringExtra("adaptpos"));
String likes = data.getStringExtra("likes");
String favorites = data.getStringExtra("favorites");
mRecipes[adaptpos].setLikes(likes);
mRecipes[adaptpos].setFavorites(favorites);
mAdapter.notifyDataSetChanged();
mAdapter.notifyItemChanged(adaptpos);
}
}
对此的任何帮助将不胜感激。如果一切都失败了,我可能只需要重新加载整个片段以反映状态的变化。
【问题讨论】:
标签: android android-fragments android-intent android-activity android-recyclerview