Master-details:如何通知 master RecycleView activity 需要重新加载的更改

Master-details: how to notify master RecycleView activity of change that requires reloading

Android中的主要细节:

我在 MainActivity 中有一个 RecycleView,每个项目都有一行。当用户单击一行时,将加载详细信息 Activity,他可以在其中更改内容。

事情是,当我回到主要 Activity 时:

finish()

我必须在 MainActivity 的 onResume 方法上刷新 RecycleView 的适配器:

@Override
public void onResume() {
    Log.d("onResume", "yes");

    super.onResume();

    mAdapter.notifyDataSetChanged();
}

这感觉像是一种浪费,因为并非总是会发生变化(我知道这很不合时宜)。

我还有哪些其他选择可以回到 activity "beneath"?我应该使用 Intent 返回 MainActivity 吗?我应该使用单例来传递 didChange 标志吗?也许我通过的模型上有一个 didChange 标志?

您可以使用 startActivityForResult 开始您的详细信息 Activity 并在 RESULT_OK 设置项目是否已更改,然后仅当设置此标志时才通知 onActivityResult 中的适配器。另外,您可以调用 notifyItemChanged

而不是调用 notifyDataSetChanged