android - 有没有办法从它的适配器重新加载一个片段?
问题描述
我有一个带有自定义 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
据我了解,我应该能够使用上面的代码调用片段,尽管它一直在崩溃。那么这是问题所在还是完全不同的问题?
解决方案
您可以按照以下流程进行操作。
在您的适配器中设置一个侦听器,该侦听器将在片段中实现,用于更新片段中您想要的任何内容。
- 例如,创建一个侦听器并在其中添加函数 update()。
- 使您的片段实现此侦听器 update() 方法将在您的片段中被覆盖,并在此处添加您想要的代码,在您想要刷新片段的情况下,重新加载您的数据。
- 将此侦听器传递给您的适配器。
- 在您的适配器中,查看您想要更新片段的位置,例如按钮的单击方法,在这里您从侦听器调用 update() 方法,您的片段将被更新。
推荐阅读
- swift - 为什么 NSPredicate 和 DateComponents 不起作用
- ios - 如何使用 Stripe API 确认 Apple Pay 付款
- node.js - nodejs 导入文件并原生使用函数
- node.js - 巨大的文件下载,我应该用什么来构建这个?
- java - 防止测试使用特定的弹簧配置文件运行
- javascript - 如果数据为特定大小,则在图例项的鼠标悬停时模糊/突出显示状态不会改变
- flutter - 在颤动中从另一个小部件更新小部件的状态
- recaptcha - reCaptcha V2 - 即使未勾选复选框,提交也有效
- java - 根据值调用正确的子类
- python - 是否可以将 QML 表视图连接到 python QAbstractModel 实例?