使用OnBackPressedCallback向后传递可打包bundle



在我的应用程序中,我使用OnBackPressedCallback并调用findNavController.popBackStack来管理向后导航。我遇到的一个限制是,当用户单击"返回"按钮时,我找不到将可打包捆绑包返回的方法。

用例很简单:片段一个用户输入一些数据。它被传递给片段B,用户输入更多的数据。用户决定他们想回到片段A并编辑以前的数据,所以我想把包传回来,这样他们就不会丢失以前输入的数据。

使用导航组件,我可以在导航返回时简单地附加捆绑包,但使用此OnBackPressCallback,我们不使用导航组件。因此没有任何捆绑包可附加。

有人对此有任何潜在的简单解决方案吗?我已经考虑过SharedPreferences,但是我正在传递一个对象,SP只允许主键。

最简单的解决方案是将您的parcelable序列化为JSON字符串,将其保存到共享首选项中,然后在需要检索数据时对其进行反序列化。

有两个众所周知且可靠的JSON库,如果您还没有使用或不熟悉:您可以使用Gson(Google(或Moshi(Square(

相关内容

  • 没有找到相关文章

最新更新