Android Fragments 为什么在Kotlin应用程序中切换片段会丢失数据?

cclgggtu  于 2023-03-08  发布在  Android
关注(0)|答案(1)|浏览(257)

我正在编写一个基本的商店应用程序(我是初学者)。它有一个默认的底部栏。在home片段中,有一个用产品适配器实现的recyclerview,用于显示productList中的产品。当我使用navigationcontroller单击给定的产品时,它会更改为一个新片段,显示产品的更多数据信息。我使用Json传输所单击产品的数据,但我不知道这是否是正确的方式?但它工作...问题是,当我点击详细信息片段中的一个按钮,导航我回到主页片段时,所有数据都消失了。然而,当我点击底部栏导航到 Jmeter 板片段,然后回到主片段时,数据保持不变。2这怎么可能呢?我试着用了一个视图模型,但是还是不行,可能是我用错了......你知道切换视图的时候,如何在某个片段上存储产品的数据吗?
我以为当我创建一个viewModel的示例并将数据存储在那里(产品列表)时,即使我更改片段,它也会存储它们。但它可能不会,或者我不知道如何。谢谢您的提示。

pvcm50d1

pvcm50d11#

听起来你的论点持续的时间和它们最初的片段一样长。
如果你的两个片段示例化了同一个视图模型,那么你实际上创建了同一个视图模型的两个示例,数据只被第一个示例保存,不能传递给第二个示例。
你要么
1.创建一个共享的视图模型,将视图模型本身作为参数传递给下一个片段,这样它就可以访问存储的数据或
1.将数据保存在应用的存储中,然后从其他片段重新打开它。

相关问题