问题标签 [android-jetpack-datastore]
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.
android - 使用 Jetpack 数据存储保存复选框状态
我目前正在编写一个应用程序,其中 recyclerview 中的每个项目都有一个复选框。用户可以单击复选框来保存特定电影。
我想使用 Jetpack Datastore 来保存复选框的状态。我设置了首选项管理器,但我在片段中遇到了困难,因为后者没有对复选框的引用(复选框在项目布局中)
在下面,您将找到首选项管理器类、daoviewmodel(我正在使用另一个视图模型从 api 获取数据)以及显示 recyclerview 的片段之一。
任何帮助是极大的赞赏。谢谢!
首选项管理器.kt
DaoViewModel.kt
MoviesListFragment.kt
android - 使用带有复选框的 Jetpack 数据存储
我目前正在编写一个显示电影列表的应用程序。
我正在使用带有 3 个选项卡的底部导航栏:趋势、发现和收藏夹。每个都显示电影列表,用户可以按下电影并转到详细信息片段。详细信息片段有一个复选框,可以将电影添加到收藏夹选项卡。
复选框有效,电影已添加到收藏夹,但复选框状态有问题。例如,如果我从详细信息片段(例如从趋势选项卡)添加电影,然后转到收藏夹选项卡并按电影以转到详细信息片段,则不会选中。
此外,如果我回到趋势并按下电影,它也不会被检查。
任何帮助是极大的赞赏。
MoviesDetailsFragment.kt
DaoViewModel.kt
首选项管理器.kt
java - 从 SharedPreferences 迁移到 Jetpack DataStore “Java”
根据这个问题,我正在尝试将当前项目从 SharedPreferences 迁移到 dataStore 以存储用户选择的布局值,问题在于读取值,我得到了 NPE,首先这是我的代码
内部DataStoreRepository类
我在这样的片段中使用它
首先,我阅读了可流动的
然后在同一个类中,我将值存储在方法上changeAndSaveLayout()
当我运行时,我得到了这个 NPE,它是关于读取值readLayoutFlow
的,我试图在这样的方法之外创建密钥
并在 saveValue() 中像这样更改它的值,但它也不起作用
RECYCLER_VIEW_LAYOUT_KEY.to(keyName);
NPE的输出
android - 在 DataStore 迁移后删除 SharedPreferences
我遇到了这个问题,修复很简单但不明显,所以我想我会分享。
我正在将单个字段从迁移SharedPreferences
到 aPreferences DataStore
并使用默认值SharedPreferencesMigration
来执行此操作。每次迁移运行时,我的SharedPreferences
文件都会被删除。
android - 使用 PreferencesDataStore 将主题设置为活动
我已将我的应用程序从 using 切换SharedPreferences
到PreferencesDataStore
. 我还在我的应用程序中实现了暗模式和几个主题。对于主题,我基本上在每个活动中都依赖此代码:
选定的主题被存储为一个整数,每个主题用于浅色模式和深色模式。现在,我也想采用我的代码的这一部分。我从我的 dataStore 存储库中获取了 darkMode 布尔值,如下所示:
如果我在 LiveData 对象的 observe(this) { ... } 内工作,它将无法工作。
现在,如何将上面显示的代码片段更改为PreferencesDataStore
?或者实际上是否更好,例如创建一个单独的类以便从那里观察值?如果是的话,那样的东西怎么可能呢?或者你知道一些遵循 Android 架构的很好的示例代码,包括我可以查看的带有暗模式的自定义主题吗?
我仍在学习很多东西,非常感谢任何有助于更好地理解这一点的帮助!
最好的问候,马库斯
编辑:
android - 将数据保存到 OnLifecycleEvent.ON_STOP 中的 Preferences DataStore 永远不会被调用
当按下后退按钮时,我很想观察一些数据并将其保存ON_START
到共享首选项中。ON_STOP
问题是调用了前面的代码preferencesDataStore.dataStore.edit
,但该值未保存到首选项中。
这是我的代码。
查看型号:
分段:
数据层:
刀柄。
构建.gradle
我了解我的数据未保存的原因是因为模型视图范围被取消,并且repository.saveData(_myUiState.value)
也被取消。
我想知道正确的模式是什么。
android - 如何将数据存储 api 与 jetpack compose 一起使用?
我在 viewModel 中保留时间状态,需要将当前状态存储在首选项中,并在用户关闭并再次打开应用程序时再次加载时间状态。这是我当前的代码。
视图模型
可组合功能
android - How to perform version migrations in Android Jetpack Datastore
Performing a migration from SharedPrefs into DataStore is straightforward and documented very well. However when I want to do a simple "version bump" migration from DataStore to still DataStore, meaning some keys might have changed etc. how should one do that?
As far as I see now, we need to manually implement these functions in the migrations parameter when creating the DataStore.
I haven't seen anyone talking about it, or it being part of the codelab unfortunately which was a big surprise to me. Could someone point me to where I could look to get some inspiration about how to do this properly?
android - Android Jetpack 数据存储“限制”
由于共享首选项数据跨 1428.51-kb 时存在内存异常,因此推荐的 Android Jetpack DataStore 的内存限制是否相同?
由于 DataStore 使用带有协议缓冲区的类型化对象,在内存的情况下会有优势吗?