首页 > 解决方案 > 有没有办法从它的适配器重新加载一个片段?

问题描述

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

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

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

标签: androidandroid-fragmentsrefreshadapter

解决方案


您可以按照以下流程进行操作。

在您的适配器中设置一个侦听器,该侦听器将在片段中实现,用于更新片段中您想要的任何内容。

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

推荐阅读