Android LiveData保留了该值,并允许它观察更改并尊重应用程序组件的生命周期。
使用君主国数据库,dao 提供 liveData。存储库使用 liveData 上的 .asFlow 将 liveData 作为流程提供给用例。 useCase 需要将流程返回到 ViewModel a...
将默认/初始值传递到 Jetpack Compose TextField 的最佳方法是什么?
上下文 我试图弄清楚如何将默认值传递给 TextField 可组合项。我已经看到了一些解决方案,但我正在查看一些关于最广泛接受的解决方案的反馈...
一旦用户注销并再次登录,观察者就不会观察实时数据。我认为它在某种程度上与视图模型范围有关,因为重新启动应用程序后它会观察事物......
如何将 Kotlin 协程与 Firebase 实时数据库结合使用,并在 LiveData 和 StateFlow 之间选择嵌套对象?
我正在开发一个 Android 项目,想要将 Kotlin 协程与 Firebase 实时数据库结合使用。我计划使用 addValueEventListener 但我不确定是否使用 LiveData 或 StateFlow
ViewModel LiveData 在 Android 中屏幕旋转后发出空列表
我遇到了有关屏幕旋转期间 ViewModel 中 LiveData 行为的问题。 我的应用程序围绕 MVVM 模式构建,包括一个观察 LiveData 的 Activity<
LiveData 在 ViewModel 测试期间返回 NullPointer IsMainThread 错误
尝试观察视图模型中的实时数据时,我的视图模型单元测试一直失败。我从文档中添加了两条规则,即:InstantTaskExecutorRule 和 MainCoroutineRule。我也注射...
DetailFragment 的 Viewmodel 是否应该在实例之间共享?
我写了一个显示商店列表的主片段,称之为 StoreFeedFragment。如果您单击商店,它会调用 StoreDetailFragment 的 newInstance 以提供所单击商店的详细信息。都
Jetpack Compose 无法观察 MutableLiveData
查看 viewModel.todoLists.observe(lifecycleOwner){ it?.let { label.value = it.toString() } } 视图模型 val todoLists : MutableLiveData = MutableLiveData() ...
将项目添加到索引为零的可变列表不会更新 recyclerview
我在一个片段中有一个回收视图,它显示一个可变的任务列表,每个任务都有一个标题和描述,包裹在可变的实时数据中。 私人 val _tasks = MutableLiveData 我在一个片段中有一个 recyclerview,它显示一个可变的任务列表,每个任务都有一个标题和描述,包裹在可变的实时数据中。 private val _tasks = MutableLiveData<MutableList<Task>>() 为了添加这些项目,我实现了一个底部工作表对话框片段,其中包含两个值的文本编辑。 当我在没有指定索引的情况下添加任务项时,recyclerview 会正确更新: _tasks.value!!.add(Task(taskEditText,descriptionEditText)) 但是,当我指定我想要索引 0 处的新任务项并添加多个任务项时,recyclerview 我尝试过的事情: 在适配器内部使用 notifyDataSetChanged 可以正常工作并正确更新 recyclerview,但是我尝试将它添加到底部工作表对话框中的添加任务按钮,但它什么也没做。 我尝试将项目添加到临时列表,然后将其设置为 _tasks.value 但同样的事情发生了,仅在我未指定索引时更新。 这里是相关文件: AddTaskFragment(底部工作表对话框): override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) binding.lifecycleOwner = viewLifecycleOwner // if the textfields are not empty, adds the task and leaves the dialog binding.buttonAdd.setOnClickListener{ if (binding.addTaskEditText.text!!.isNotEmpty() && binding.addDescriptionEditText.text!!.isNotEmpty()) { viewModel.addTask(binding.addTaskEditText.text.toString(), binding.addDescriptionEditText.text.toString()) dismiss() } } } viewmodel 中的 addTask 函数: fun addTask(taskEditText : String, descriptionEditText : String) { _tasks.value!!.add(0,Task(taskEditText,descriptionEditText)) } 适配器: override fun onBindViewHolder(holder: ViewHolder, position: Int) { val task = viewModel.tasks.value!![position] holder.itemTitle.text = task.text holder.itemDescription.text = task.description holder.textViewOptions.setOnClickListener { onMenuClick(position, holder, task) } } 提前致谢,希望专业人士能帮助我 viewModel.tasks.observe(viewLifecycleOwner, Observer { adapter.notifyDataSetChanged() }) 试一试 幕后发生的事情是列表适配器检查旧列表是否与新列表引用相同,在您的情况下是相同的列表,因此它不采取任何操作(查看代码)。但是当 oldList 在引用方面与 newList 不同时,它会更新回收器视图中的项目。如果你想实现它,要么使用不变性作为更新 UI 中项目的模式,要么使用 recyclerview 中可用的其他方法,例如 notifyItemInserted、notifyDataSetChanged 等
如果我在函数中通过 liveData 返回请求并在活动中观察它以显示响应,我的活动是否总是观察 liveData 或仅在调用函数时观察? 视图模型: 有趣
给定一个 MutableLiveData val liveData = MutableLiveData?>() 如果我先发送一个有效列表 liveData.postValue(listOf("a", "b", "c")) 然后...
每当您在 LiveData 上调用 .observe() 时,Observer 都会收到该 LiveData 的最后一个值。这在某些情况下可能有用,但在我的情况下没有用。 每当我调用 .observe() 时,我都希望观察者...
Jetpack 生命周期:Fragment 的视图生命周期永远不会达到 CREATED 状态,永远不会被销毁
问题 我最近注意到一个案例,在 Android 应用程序中,触发了以下异常: java.lang.IllegalArgumentException:无法添加具有不同生命周期的相同观察者 很高兴...
我有一个在授予权限时触发的服务类(AccessibilityService)。我检查在 onAccessibilityEvent() 方法中所做的窗口更改并将包名称发送到视图...
使用 lazycolumn jetpack compose 比使用 recycleview 延迟更多
我刚刚学习了 jetpack compose 并且我从回收切换到 lazycolumn 但是当我这样做时它比回收滞后得多 在向应用程序添加大约 100 个项目后,应用程序滞后,有没有...
我的实时数据正在更新,但不会触发 android kotlin 中的观察者
我有一个 livedata 变量,我一直在从我的主要活动中监听它,以了解在 UI 线程中执行某些操作的可能更改,但不幸的是它没有被触发。请注意
在 Android Kotlin Room 中从数据库获取数据时出现问题
我是移动开发的新手。我正在尝试从片段中的 Room 数据库获取 LiveData,我没有收到任何错误,但 Observer 回调为空。我的数据库包含数据,我可以访问日志...
androidx.lifecycle.LiveDataReactiveStreams 类在版本 2.6.0 之后找不到
我刚开始玩LiveData。 我按照官方 Android 文档导入了不同的工件。一切都很好,直到我需要将 Observable 转换为 LiveData。但是
第一次运行 Room DB 查询会导致 Activity / Fragment onDestroy()
当我的应用程序运行时,StartFragment 在我的 Room DB 上运行 LiveData 查询以获取 PersonId。第一次数据库调用似乎创建/打开数据库,但 LiveData onChanged() 从未被调用并且
如何从 Observer android kotlin 保存值
我有一个 ROOM 数据库,我可以从中获取值。 我正在使用 Observer 来获取数据,但是有一个问题。我的 Fragment 中有一个全局变量 availability ,我想存储 v...