问题标签 [viewmodel-savedstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
312 浏览

android - NullPointerException @ SavedStateHandle ViewModel w/ Hilt

在下面运行我的视图模型时我的应用程序崩溃

错误是java.lang.NullPointerException。我正在使用 safeArgs。请参阅下面的 ViewHolder。

当我开始导航到我的 detailFragment 时。应用程序开始崩溃说 NullPointerException。

下面的代码是我的 nav_graph

这是报告片段

我参考了 Google 的 Sunflower App 的代码。但我想我错过了一些东西。

如何修复此崩溃?

0 投票
0 回答
32 浏览

android-studio - 通过导航从另一个片段移回后,在片段中动态添加视图不会持续存在

我在片段中动态添加视图,效果很好,但是当我导航到另一个片段并返回到第一个片段时,所有布局都设置为初始布局(不存在动态添加的视图)。所以在这里我必须保存 UI 状态,直到我的片段的父活动没有关闭。

初始片段类代码

初始片段布局代码

动态添加的布局代码

问题快照

第一个片段开始时的初始状态

动态查看添加和信息填充

从另一个片段返回后的第一个片段

0 投票
0 回答
132 浏览

android - 使用 Saved State 模块在 Android 中为 ViewModel 保存 Arraylist 以处理进程死亡

我们如何在 Android 中为 ViewModel 使用 Saved State 模块保存 Arraylist

Arraylist 只有 5 个项目。

我有这个工作正常的代码

这可以很好地处理屏幕方向的变化

现在我想处理进程死亡所以我尝试使用下面的代码转换它

但是我收到此错误

java.lang.ClassCastException: androidx.lifecycle.SavedStateHandle$SavingStateLiveData cannot be cast to java.util.Collection

我的问题是我们如何使用 ViewModel 的 Saved State 模块将代码转换为保存数组列表

0 投票
1 回答
84 浏览

viewmodel - 如何在后台线程中为 ViewModel 使用 Saved State 模块

如何在后台线程中为 ViewModel 使用 Saved State 模块

因为MutableLiveData我们可以选择使用setvalueand postvalue,其中Postvalue可以在后台线程中使用。

我们如何BACKGROUND THREAD为 ViewModel 使用 FOR Saved State 模块

这是我正在尝试的代码

使用后台线程时出现以下错误

我们如何解决这个问题。

0 投票
0 回答
33 浏览

android - 旋转后屏幕为空

我需要处理屏幕旋转,所以我阅读了有关保存状态的信息,并尝试实现它有点我做不到!

这是片段屏幕:

所以在这里我应该用 savedstate 初始化 viewModel 但这会出错:

这是我的视图模型:

请问有人可以帮我吗?我不能很好地理解它或正确实施它,所以有什么问题?

0 投票
0 回答
67 浏览

kotlin - 带 Hilt 的 SavedStateViewModelFactory

如何将 SavedStateViewModelFactory 与刀柄初始化一起使用?

我阅读了有关 savedstate 的信息,所有开发人员都在没有刀柄的情况下对其进行了初始化当我尝试像这样用刀柄初始化它时:

它给了我这个错误:

如何初始化 SavedStateViewModelFactory 以将其与 viewmodel 一起使用并在应用程序旋转时使用它?

0 投票
2 回答
721 浏览

android-viewmodel - SavedStateHandle 不持久化数据

我按照下一页中的说明创建了一个 viewModel,但是SavedStateHandle当我关闭应用程序并再次打开它时它不起作用。

这是页面:

ViewModel 的已保存状态模块

这是我的视图模型类:

这是我在活动中使用 viewModel 的方式。

我什至在我的活动中尝试过这个,但这也不起作用!

我应该怎么做才能将数据保留在SavedStateHandle? 我的意思是,打开应用程序后state仍然是空的。

0 投票
0 回答
40 浏览

android - SavedStateHandle 数据在哪里以及如何存储在磁盘上?

使用 保存部分 UI 状态时SavedStateHandle,该状态中的数据会在应用进程死亡时持久化(在磁盘上)。由于各种领域/业务原因,此数据可能包含敏感信息。这些数据在哪里以及如何保存?这种持久性有多安全?Android(设备/目标/编译)版本对此是否重要?

Android 开发者网站提供了大量关于保存 UI 状态、存储和安全性的信息,但它们是难以集成的大而独立的主题(至少对我而言)。所以我不确定什么存储在哪里以及如何存储。

0 投票
1 回答
69 浏览

android - 如何创建可以保存状态的不可为空的 LiveData

当我们有如下的 liveData 时,我们不能_liveData.value++,因为它是可以value为空的。

文章https://proandroiddev.com/improving-livedata-nullability-in-kotlin-45751a2bafb7提供了解决方案,即

但这不支持已保存状态。

我们如何才能获得一个也具有已保存状态的不可为空的 LiveData?

0 投票
1 回答
48 浏览

android - 配置更改不保存应用程序状态 MVVM

我正在构建一个电影应用程序。有一个与父大小匹配的回收器视图,以及 1 个搜索操作按钮(SearchView)。

当我搜索电影时,一切正常,但是当我改变方向时,活动就失去了它的状态。recyclerview 变成空的,我需要再次搜索电影。

我正在使用 MVVM,我知道它不会发生..

谢谢!

这是存储库:

这是视图模型:

这是主活动: