有没有办法从其适配器重新加载片段?

Is there a way to reload a fragment from its adapter?

我有一个带有使用 REST 调用填充的自定义 recycerview 的片段。当我单击列表项时会弹出​​一个对话框。每当我离开对话框时,我都想重置该列表。我找到了以下代码:

FragmentManager manager = ((AppCompatActivity) context).getSupportFragmentManager();
Fragment currentFragment = manager.findFragmentByTag("productTag");
FragmentTransaction fragmentTransaction = manager.beginTransaction();
fragmentTransaction.detach(currentFragment);
fragmentTransaction.attach(currentFragment);
fragmentTransaction.commit();

当我点击 onClick 按钮(一种退出对话框的方法)时,应用程序崩溃并且 logcat 说:

Attempt to invoke virtual method 'void androidx.fragment.app.Fragment.setNextAnim(int)' on a null object reference

据我所知,我应该能够使用上面的代码调用该片段,尽管它一直在崩溃。那么这是问题所在还是完全不同的地方?

您可以遵循如下流程。

在您的 Adapter 中设置一个将在 Fragment 中实现的侦听器,用于更新您在 fragment 中想要的任何内容。

  1. 创建一个侦听器并在其中添加例如函数 update()。
  2. 使您的片段实现此侦听器 update() 方法将在您的片段中被覆盖,并在此处添加您想要的代码,在您的情况下您想要刷新片段,因此重新加载您的数据。
  3. 将此侦听器传递给您的适配器。
  4. 在你的适配器中,看看你想在哪里更新你的片段让我们说例如按钮的点击方法,在这里你从侦听器调用 update() 方法,你的片段将被更新。