Android LiveData保留了该值,并允许它观察更改并尊重应用程序组件的生命周期。
我正在学习android开发,我编写了一个任务调度程序应用程序。我有一个侧边栏,其中的日期至少有 1 个任务。主要活动有一个回收视图,其中显示任务机器人...
ViewModel 中的 LiveData 变量以及将数据传递到 View 时出现问题
Github项目链接 这是我的项目,如果您有时间看一下它的内容,我将不胜感激。 所以我的 LoginViewModel.kt 我有两个变量和一些在 LiveData 上工作的乐趣:
ViewModel 的 LiveData 变量为空值,而不是 Flow 中所需的值
我正在尝试制作一个使用 firestore 的简单应用程序,只需插入设备的令牌并获取与该令牌对应的名称。当我尝试获取“名称”值时,流程...
我有一个名为“调查项目”的类,它是另一个名为“调查数据”的类的子类,如下所示。 @Parcelize 数据类 DataSurvey( @field:SerializedName("名称") 值名称:字符串, ...
以下代码中仅调用了functionC。 getValues 方法从片段的主线程调用,但函数 A 和 FunctionB 被跳过 类 MyViewModel() { 有趣的 getValues(){ _实时数据。
我有一个基于结果从 A 类发出的 LiveEvent private val exampleSingleLiveEvent = SingleLiveEvent() 打开val秀:SingleLiveEvent 获取()=
使用 LiveData 和 JetPack Compose Android Kotlin 插入和读取 RoomDb 数据
该项目使用 Jetpack Compose、Room Database 和 LiveData 实现了基本的笔记应用程序。以下是关键组件和代码流程的概述: 主要部件: 数据库和数据
Jetpack compose Room 数据库 UI 更新问题
看过一些关于类似问题的帖子,但没有任何东西能让我的代码工作。 我有一个存储大约 100 个对象的数据库。这些显示在屏幕上,但一旦我更新其中一个对象......
在两个不同片段上从 SharedViewmodel 观察数据无法正常工作
我正在过滤底部表中的数据,该底部表可以在不同活动的两个不同片段中打开,当我过滤片段A上的数据时,它们保存在视图模型上,但是当我进入Fragme时...
如何将其从 LiveData 迁移到 Android 上的 Kotlin Flow?
我是 Android 上的 Kotlin Flow 新手。 您能告诉我如何将此 LiveData 代码迁移到 Flow 吗? 类 MyViewModel @Inject 构造函数(private val myRepository: MyRepository) : ViewModel() {...
Android 开发 - Room、LiveData、Repository 和 ViewModel
我正在使用架构组件学习 Android 开发。我对它们的正确使用有一些疑问。 这是我的代码,它是在本地保存数据的简单应用程序。 产品实体 @
获取java.lang.RuntimeException:无法从绑定实现方法调用观察者方法
请帮助我解决我的问题。 我想从我的数据库获取 LiveData 并使用 recycleview 显示它。 我在存储库中有方法从数据库获取它: 有趣的 getEthTransactions(): LiveDa...
目前我的应用程序中有这种方法: ViewState(每个屏幕一个视图状态) 密封类 CategoryViewState { 对象加载:CategoriesViewState() 数据类错误( 瓦尔
在 Activity 中使用 ViewModel 中的变量。最佳实践
我想在活动中使用虚拟机上的三个列表。 这些列表不会随时间改变,永远是一样的,所以它不是一个状态。 我应该对活动执行以下操作吗? 私人价值
无法转换lifecycle-livedata-core-2.8.0.aar以匹配属性(Flutter)
[[[在此处输入图像描述](https://i.sstatic.net/FyXF8U6V.png)](https://i.sstatic.net/BHA1Vyxz.png)](https://i. sstatic.net/JYa53T2C.png) 错误:C:\Users\Appspedia.gradl
如何收集activity中的两个状态流?因为我只消耗了第一个流量。 例如,viewmodel内部是这样的: 类 ExampleViewModel: ViewModel(){ 私有 val 状态 =
具有数据类的 LiveData 不会在 ViewModel 中更新
我想在我的 MainViewModel 中使用我的数据类 AuthData。 de.hsfl.appamigos.capturetheflag 包 导入 androidx.lifecycle.MutableLiveData 数据类 AuthData(var game: MutableLiveData 我想在我的 MainViewModel 中使用我的数据类 AuthData。 package de.hsfl.appamigos.capturetheflag import androidx.lifecycle.MutableLiveData data class AuthData(var game: MutableLiveData<String>) package de.hsfl.appamigos.capturetheflag import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel class MainViewModel : ViewModel() { private val authData: MutableLiveData<AuthData> = MutableLiveData() fun getGame(): LiveData<AuthData> = authData fun setGame(newAuthData: AuthData) { authData.value?.game = newAuthData.game } fun startNewGame(text: String) { val newGame = MutableLiveData("1234") val newAuthData = AuthData(newGame) setGame(newAuthData) } } 当我尝试观察我的片段之一的变化时,它没有得到通知。 package de.hsfl.appamigos.capturetheflag import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import de.hsfl.appamigos.capturetheflag.databinding.FragmentLobbyBinding class LobbyFragment : Fragment() { ... val mainViewModel: MainViewModel by activityViewModels() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, ): View? { // Inflate the layout for this fragment //val root = inflater.inflate(R.layout.fragment_lobby, container, false) val binding = FragmentLobbyBinding.inflate(inflater) val naviGraph = findNavController() mainViewModel.getGame().observe(viewLifecycleOwner) { binding.textViewGameID.text = it.game.toString() } ... return binding.root; //return inflater.inflate(R.layout.fragment_lobby, container, false) } } 我尝试取出数据类,只使用可变的,并且工作正常,所以所有连接都有点正确。 我想这是因为 authData 没有改变,但属性 game 改变了。如何观察属性本身的变化? 我无法解决数据类问题,因为这是我的教授的要求。我可以使用普通课程,但我看不出这有什么帮助。 我猜这是因为 authData 没有改变,但属性游戏改变了。 正是如此。 如何观察属性本身的变化? 观察属性本身。 mainViewModel.getGame().game.observe(viewLifecycleOwner) { binding.textViewGameID.text = it.game.toString() } 或者更新当前观察到的整个对象。 fun setGame(newAuthData: AuthData) { //authData.value?.game = newAuthData.game authData.value = newAuthData } 附注- 你的方法名称很混乱。获取并设置“游戏” 获取并设置一个“AuthData”,它本身有一个“游戏”?如果您要获取并设置“AuthData”,只需将其称为 getAuthData 和 setAuthData。 您在 LiveData 的数据类中有一个 LiveData。听起来不太对。 您的数据类应该只包含简单的类,即数字或字符串等,或其他数据类。此外,当从视图模型中公开时,您的数据类应该是不可变的,也就是说,它们只包含 val 属性。你的数据类应该看起来像这样: data class AuthData(val game: String) 使视图模型适应更改后的数据类,如下所示: class MainViewModel : ViewModel() { private val authData: MutableLiveData<AuthData> = MutableLiveData() fun getGame(): LiveData<AuthData> = authData private fun setGame(newAuthData: AuthData) { authData.value = newAuthData } fun startNewGame(text: String) { val newGame = "1234" val newAuthData = AuthData(newGame) setGame(newAuthData) } } 现在一切都应该正常了。
我已经以不同的方式写了三次这个,但我不断得到一个空的数据框。我忽略了什么?这段代码是一个类的一部分。 导入pytz 将 MetaTrader5 导入为 mt5 导入
java.lang.IllegalStateException:将 LiveData 观察为状态时,CompositionLocal LocalLifecycleOwner 不存在
当从视图模型中观察 LiveData 作为 Activity onCreate 中的状态时,我收到了 IllegalStateException。它抱怨缺少生命周期所有者,但是根据我的理解
我有一个状态流,它为我提供来自 ViewModel 的可变状态流的值,我想做的是,我想根据按钮单击显示隐藏 Web 视图。当值为真时我想要...