【发布时间】:2021-08-21 19:57:03
【问题描述】:
我已经为这个问题苦苦挣扎了一周,这基本上是一个 Backstack 问题,我还没有找到最佳解决方案。我正在做一个流程是这样的项目:
Activity (Fragment_A -> Fragment_B -> Fragment_C -> Fragment_A)
我正在设置Fragment_A 一个DatePicker 和一个TimePicker,我有2 个TextViews 将用户重定向到Fragment_B。我从Fragment_B 向Fragment_C 发送一些数据,Fragment_C 会转换数据并将其发送回Fragment_A。
问题在于,据我了解,当返回Fragment_A 时,它会使用一个新实例,而不是旧实例,因此我的数据丢失了。我现在用sharedPreferences 解决了,但对于解决方案来说似乎太复杂了。我尝试过自定义beginTransaction() 和Navigation component,但效果不佳。
我很接近,当从 Fragment_C 转到 Fragment_A 时,旧实例之上有新实例,onBackPressed 它弹出了新实例,并向我展示了旧实例,但我该如何解决我不需要按返回按钮吗?我尝试发送一个布尔值,所以如果它是一个新实例,则弹出它,但我猜它会弹出旧实例,因为当我按下返回时,它只是退出 Activity 而不是弹出新实例。
感谢任何帮助!
【问题讨论】:
标签: android kotlin navigation stack nav