3. 在 Activity 或 Fragment 中调用 ViewModel 在你的 Activity 或 Fragment 中,可以使用ViewModelProvider得到 ViewModel 实例。 importandroid.os.Bundle;importandroidx.appcompat.app.AppCompatActivity;importandroidx.lifecycle.Observer;importandroidx.lifecycle.ViewModelProvider;publicclassMainActivityextendsAppCompatAct...
下面是一个简单的序列图,展示了在 Android 中使用 ViewModel 的流程: Activity创建 ViewModel返回 LiveData设置数据数据更新 总结 通过使用 ViewModel,我们可以更好地管理和保持界面相关的数据,提高应用的性能和用户体验。在 Java 中使用 ViewModel 非常简单,只需继承 AndroidViewModel 类,并在 Activity 或 Fragment 中获...
设置完TextView组件的ID值后,就可以通过MainActivity.java文件绑定ViewModel并进行控制。 packagecom.hello.livedata;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.TextView;importandroidx.appcompat.app.AppCompatActivity;importandroidx.lifecycle.ViewModelProvider;importandroidx.lifecycle....
了解了ViewModel的生命周期后,来向ViewModel中添加数据,让它完成视图数据所有权的操作者的角色。把之前MainActivity.java中跟数据有关的代码都挪到QuizViewModel.java中。 QuizViewModel.java代码清单: publicclassQuizViewModelextendsViewModel {privatestaticfinalString TAG="QuizViewModel";intmCurrentIdx=0;intmCount=0;...
首先,ViewModel是如何创建的? classMainViewModel:ViewModel(){}classMainActivity:ComponentActivity(){privatevalmodel:MainViewModelbyviewModels()} 我通过官方给的委托函数进行了ViewModel的初始化,直接跟进去查看ViewModel的创建,可以找到关键的创建语句, ViewModelProvider(store,factory).get(MainViewModel::class.java)...
调用ViewModelProvider#get 函数 , 获取自定义 ViewModel 类 ; varviewModel:MyViewModel=ViewModelProvider(this,ViewModelProvider.AndroidViewModelFactory(application)).get(MyViewModel::class.java) 最后,将 视图模型中的数据 设置到 视图组件 中 ; 与DataBinding 结合使用时 , 将 ViewModel 对象设置到 DataBinding 布...
valmainViewModel = ViewModelProvider(this).get(MainViewModel::class.java) AI代码助手复制代码 神奇!MainActivity 被重建了,而 ViewModel 的实例没有变,并且 ViewModel 对象里的 LiveData 对象实例也没变。 这就是 ViewModel 的特性。 ViewModel 出现之前,Activity 可以使用 onSaveInstanceState() 方法保存,然后从 ...
.get(AppsViewModel::class.java)//---3---viewModel.apps.observe(viewLifecycleOwner, Observer {//Update UI}) } } AI代码助手复制代码 我们先声明了一个变量viewModel,我们可以通过注释1处的 by viewModels提供一个自定义的Factory,但是需要添加一个依赖:implementation "androidx.fragment:fragment-ktx:1.2.2...
val userViewModel: UserViewModel = ViewModelProvider( this, ViewModelProvider.NewInstanceFactory() // this, ViewModelProvider.AndroidViewModelFactory(application) ).get(UserViewModel::class.java) //5. 观察ViewModel中的LiveData数据,更新UI userViewModel.userName.observe(this, Observer { ...
知识点 | ViewModel 四种集成方式 我们在 2019 年做的一份开发者问卷显示,超过 40% 的 Android 开发者已经在自己的应用中使用了 ViewModel。...那段是 Java 代码,而接下来的是 Kotlin 代码: 第一步: 添加依赖 SaveStateHandle 目前在一个独立的模块中,您需要在依赖中添加: def lifecycle_version...ViewModel ...