我正在制作一个包含post元素的主要RecyclerView“Feed”的应用。
您可以点击一条带您进入详细视图的帖子。
我选择将详细视图放在“透明”活动中,以便在单击详细视图时暂停当前活动并启动新活动。这意味着Feed活动不会丢失其状态,并且recyclelerview保持其位置,以便当用户单击时,活动/片段不需要重新加载。
在Feed的帖子和详细视图中,我都有可以点击的拇指按钮。当用户进入详细视图时,我传入拇指按钮的状态,并在onCreate()中初始化。当用户退出详细视图时,我需要更新主Feed中的拇指按钮的状态(以使它们保持同步),而无需刷新整个Recyclerview。 这需要我在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);
}
}
任何有关此事的帮助将不胜感激。如果所有其他方法都失败了,我可能只需要重新加载整个片段以反映状态的变化。