android-viewmodel 相关问题

Android ViewModel 中的协程令人费解的行为

我正在尝试在ViewModel中探索和实现协程取消/异常恢复机制。我发现 ViewModel 中的以下代码无法捕获异常并且应用程序崩溃。 视图模型...

回答 1 投票 0

Android Kotlin/Compose ViewModel - 用于两个独立功能的两个 SateFlow 到用于 UI ViewModel 的一个 StateFlow?

首先,我不是开发人员或其他任何人,但我想要一个我的手机上不存在的应用程序,并且我了解最少量的编码,了解了 Android Kotlin/Jetpack Compose 基础知识......

回答 1 投票 0

为什么使用 jetpack compose mvvvm 进行改造时未触发网络调用

我有一个端点 https://api.openweathermap.org/data/2.5/weather?q=sukkur,pk&appid=5********************c 我想使用改造来调用这个端点 接口WeatherApiService { ...

回答 1 投票 0

ViewModel 并使用上下文来获取 50x50 的本地化字符串资源列表?

请在此处找到我的 Kotlin - Jetpack Compose 项目的简化用例: 我需要构建一个 50 x 50 字符串的列表(我们称之为 listC)。该列表由 2 个包含 50 个字符串的列表组成:lis...

回答 1 投票 0

点击android中活动B中存在的按钮后如何更改活动A中textview的值?

我的应用程序中有两项活动。在活动 A (MainActivity.kt) 中,我有两个名为“buttonGo”和“buttonCounter”的按钮。如果我单击“buttonGo”,它将转到另一个活动 B (Second.kt)。我想要什么...

回答 1 投票 0

在 Activity 中使用 ViewModel 中的变量。最佳实践

我想在活动中使用虚拟机上的三个列表。 这些列表不会随时间改变,永远是一样的,所以它不是一个状态。 我应该对活动执行以下操作吗? 私人价值

回答 1 投票 0

如何在 compose 中将 String 参数传递给 viewmodel?

如何在 Compose 中将 String 参数传递给 ViewModel?我的意思是字符串变量,而不是硬编码的变量或应用程序存储的变量。我需要将它作为参数传递。这只是为了学习

回答 1 投票 0

是否可以在不使用NavHost的情况下保存和提取savedStateHandle(视图模型)?

我正在使用 NavigableListDetailPaneScaffold 来显示项目列表,然后单击时显示详细信息。 屏幕附带有它的 viewModel,我很想在

回答 1 投票 0

使用 Turbine 测试 ViewMode 初始状态的最佳实践

我有一个简单的 ViewModel,其状态保存了一些数据。状态在我的 ViewModel 的 init 函数中初始化: ViewModelState.kt 数据类 ViewModelState( val myInfo: String = "&...

回答 1 投票 0

具有数据类的 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) } } 现在一切都应该正常了。

回答 2 投票 0

观察LiveData时如何触发重组

我正在将应用程序从视图迁移到撰写,并尝试每五分钟触发一次计划更新,其中如果数据发生变化,撰写应该重新撰写。还在m中使用RxJava...

回答 1 投票 0

我应该在 ViewModel 中包含 LifecycleOwner 吗?

当前需要 LifecycleOwner 才能创建观察者。 我有在 ViewModel 中创建观察者的代码,因此在我的

回答 4 投票 0

Android jetpack compose 中的记住结构仅在可组合函数的上下文中使用?

我的问题是关于 jetpack compose 和 kotlin 中使用的记忆结构。正如您很可能已经知道的那样,这些是我所指的: var 首先 = 记住 { mutableStateOf(true) ...

回答 1 投票 0

在jetpack compose中找不到viewModels

我正在尝试将委托函数与 viewModels 一起使用,但在尝试导入它时遇到了问题。 @可组合 有趣的 ImagePickerScreen() { val viewModel :ViewModel 的 ImageViewModel...

回答 1 投票 0

为什么在回调中调用ViewModel时会发生重组?

我完全混淆了撰写概念。 我有一个代码 @可组合 有趣的 HomeScreen(viewModel: HomeViewModel = getViewModel()) { 脚手架{ val isTimeEnable 通过 viewModel.isTimerEnable。

回答 3 投票 0

在拉动刷新时再次触发 kotlin 流程

我目前面临以下问题,希望有人能够提供帮助: 我的 ViewModel 中有一个流程为我提供了一些数据。现在我希望在 pull-to-

回答 2 投票 0

如何从 Firestore 获取与另一个 LiveData 的内容相匹配的项目列表的 LiveData?

我的 Android 应用程序使用 Firebase Firestore。我有用户的集合,也有成就的集合。每个成就都有一个所有者列表,它们是用户集合的文档 ID...

回答 1 投票 0

Jetpack Compose:“by viewModels()”与“viewModel<ViewModelName>()”

这里有什么区别? val myViewModel: MyViewModel by viewModels() 相对 val myViewModel = viewModel() 第一种方式如何运作?它如何知道要使用哪个 ViewModel

回答 1 投票 0

模块中共享 ViewModel

我有一个 Activity,下面有多个片段。我想与共享视图模型共享数据,但它们都位于不同的模块中。我无法获取 ActivityViewModel 类。当我收到

回答 1 投票 0

通过CalendarView点击不同日期选择日期时如何检索条目

我试图通过单击屏幕上的 CalendarView 来查询条目(1 个或多个),但我陷入了试图弄清楚如何继续以显示这些条目(因为我是新的)的过程中。我没有

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.