首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Jetpack - ViewModel

ViewModel 会从你第一次创建(通常在 onCreate 时)直到此 Activity 完成并销毁,Activity 在生命周期中可能会多次销毁创建 ,但 ViewModel 始终存活 如何使用...我用一个非常简单的 Demo 来展示它的基础用法,通常我们为 app 集成 ViewModel 遵循如下几个步骤: 1、创建一个继承 ViewModel 的类来分离出 UI 控制器中的数据 2、建立 ViewModel...和 UI 控制器之间的通信 3、在 UI 控制器中使用 ViewModel 1、创建 ViewModel 创建 MainActivityViewModel 并继承 ViewModel class MainActivityViewModel...ViewModel 可以继承 AndroidViewModel 类,AndroidViewModel 中包含 Application 的引用 class MainActivity : AppCompatActivity...https://developer.android.com/topic/libraries/architecture/viewmodel

87920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Jetpack系列之 ViewModel

    ViewModel的使用 ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续存在。...这句话很好理解,还记得我们在讲解Lifecycle的时候 举的例子吗,我们还是使用那个例子,如果你还没看过,可移步至: Android Jetpack系列之Lifecycle 我们再回顾一次需求: 在Activity...ViewModel的使用 我们新建Main3ActivityModel 继承自 ViewModel,在Main3ActivityModel中定义count变量 如下所示: public class Main3ActivityViewModel...向ViewModel传参 当前计数的需求是从0开始计时,我们现在修改需求如下,使用用户输入的数字为起点开始计数,这样的话ViewModel中的count就不是0了,而是传入的参数,我们在Main3Activity...我们需要借助ViewModelProvider.Factory来实现传参,新建Main3ActivityViewModelFactor继承自 ViewModelProvider.Factory,重写其onCreate

    86020

    改造 Android 官方架构组件 ViewModel

    直到 11 月份 Android 官方架构组件正式版发布, 并且 Google 也在 Support Library v26.1.0 以后的版本中内嵌了 Android 官方架构组件中的生命周期组件,...发现 Android 官方架构组件其实并没有想象的那么高深, 原理反而是我们在日常开发中都会用到的知识点, 那我就在文章的开头先简单的介绍下 Android 官方架构组件中的这几个组件 Lifecycles...生命周期组件是 Android 官方架构组件中的核心组件, 它可以使各种实例作为观察者与 Activity 和 Fragment 等具有生命周期特性的组件绑定在一起, LiveData 和 ViewModel...从官方文档可以看出 Google 对此的建议就是 RxJava, Agera, LiveData 等类似功能的库, 你只使用一个即可 选择 RxJava 还是 LiveData ?...Google 把上文提到的 Map, 封装了起来, 并没有提供出去, 并且限制了 ViewModel 的构建方式 ViewModel 组件 让一个新的 ViewModel 必须继承于它的基类, 并且让开发者必须提供一个

    77310

    Android Jetpack: ViewModel | 中文教学视频

    Android Jetpack 是一系列助力您更容易打造卓越 Android 应用的工具和组件。...Jetpack 中的架构指南由 Android 开发中四个关键领域中的一系列代码库和工具提供支持。它们分别是基础、架构、行为和UI。每个 Jetpack 组件均可单独采用,但它们依然可以流畅地协作。...基础组件 - 提供了多项核心系统功能、Kotlin 扩展和 multidex 与主动测试的支持。 架构组件 - 包含了能帮助您管理 UI 生命周期、数据持久性、应用内导航、和分页等功能的类。...让我们先从架构组件的 ViewModel 开始。...☟请看视频讲解☟ 了解更多关于Android Jetpack 的信息,您可访问此官方文档 视频播放列表地址 腾讯视频链接:请点击这里 Bilibili 视频链接:请点击这里 点击这里

    1.3K20

    Android Jetpack架构组件(三)之ViewModel

    View层:视图层,对应Android的Activity、Fragment和View等,负责数据的显示以及与用户的交互。...在Android中,Activity/Fragment主要用于显示视图数据,如果它们也负责数据库或者网络加载数据等操作,那么势必造成代码臃肿,而将逻辑代码放到ViewModel之后,可以更有效的将视图数据相关逻辑和视图控制器分离开来...dependencies { implementation 'androidx.lifecycle:lifecycle-viewmodel:2.2.0' } 2,创建一个继承自ViewModel类的...MyViewModel类,创建ViewModel类千万不能持有Context的引用,否则会引起内存泄漏,如果需要使用Context可以继承AndroidViewModel。...实例时,ViewModelProvider一共提供了4个构造函数,另一个比较重要的构造函数是 public ViewModelProvider(@NonNull ViewModelStore store

    1.4K00

    Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

    可修改数据 ② 数据观察 三、DataBinding使用 ① 单向绑定 ② 双向绑定 四、源码 前言   MVVM框架出来已经有一段时间了,现在也有很多的项目运用了MVVM框架,因此也不算是很新的东西,但是从个人的角度来说我希望写出来...正文   MVVM框架是有由来的,这个其实说来话长了,还得从最开始的Android 视图、UI来说起。...本文的主要目标是ViewModel 和 DataBinding。   从Google的官方说明来看,ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。...public class MainViewModel extends ViewModel { } 注意这里要继承ViewModel,虽然现在里面什么都没有的,但后面使用的时候会进行增加,下面先将我们的...User(String account, String pwd) { this.account = account; this.pwd = pwd; } } 这里我继承了

    17.1K97

    深入理解与运用Android Jetpack ViewModel

    在Android开发中,数据与界面的分离一直是一项重要的挑战。为了解决这个问题,Google推出了Android Jetpack组件之一的ViewModel。...什么是ViewModel ViewModel是Android Jetpack组件之一,它的主要目的是将UI控制器(如Activity和Fragment)与数据相关的业务逻辑分开,使得UI控制器能够专注于展示数据和响应用户交互...:lifecycle-viewmodel-ktx:2.3.1" } 创建ViewModel 创建ViewModel非常简单,只需继承ViewModel类并在其中定义数据和相关操作。...结论 通过本文的介绍,你已经了解了Android Jetpack ViewModel的使用与原理。...ViewModel的出现极大地简化了Android开发中的数据管理和生命周期处理,使得应用更加健壮和高效。在实际开发中,合理使用ViewModel能够帮助你构建优雅、易维护的Android应用。

    62220

    Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

    可修改数据 ② 数据观察 三、DataBinding使用 ① 单向绑定 ② 双向绑定 四、源码 前言   MVVM框架出来已经有一段时间了,现在也有很多的项目运用了MVVM框架,因此也不算是很新的东西,但是从个人的角度来说我希望写出来...正文   MVVM框架是有由来的,这个其实说来话长了,还得从最开始的Android 视图、UI来说起。...本文的主要目标是ViewModel 和 DataBinding。   从Google的官方说明来看,ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。...public class MainViewModel extends ViewModel { } 注意这里要继承ViewModel,虽然现在里面什么都没有的,但后面使用的时候会进行增加,下面先将我们的...User(String account, String pwd) { this.account = account; this.pwd = pwd; } } 这里我继承了

    2.7K32

    架构组件之 ViewModel | 中文教学视频

    架构组件之 ViewModel | 中文教学视频 在视频的代码示例中,我们使用了 Kotlin 来创建 ViewModel, 创建 ViewModel 方法如下: 在 build.gradle 文件里加入生命周期管理库...(Lifecycle); 继承 ViewModel 类; 使用 ViewModelProviders 来关联 ViewModel 和相对应的UI组件 接着把曾经保存在 UI 界面中的数据剥离出来...,使用 ViewModel 来管理这些数据。...我们还推荐开发者同时使用 ViewModel 和另一个生命周期组件 LiveData 来实现响应式的 UI 界面。...-Java 使用生命周期管理库的架构组件实例 - Kotlin 架构组件实例 ViewModelFactory 实例 Android 生命周期备忘录 视频播放列表地址 腾讯视频链接 优酷链接 YouTube

    1.5K30

    Android基于DataBinding+Koin实现MVVM模式页面快速开发框架

    Koin 无反射、无代码生成且使用更简单;借助该库可轻松在基于 kotlin 的 Android 应用开发中实现依赖注入,降低代码的耦合性。...需要先加载布局,然后从布局中找到我们需要的 View 对象再去更新其数据或为其添加相应事件处理,那么如果将这些封装成通用的 Activity/Fragment 基类则将减少很多开发代码从而提高开发效率...buildFeatures { dataBinding true } } 同时在插件中添加 kotlin-kapt的插件,如下: plugins { id 'com.android.application...' id 'org.jetbrains.kotlin.android' // 添加 kotlin-kapt 插件 id 'kotlin-kapt' } 配置完成后,点击 Sync..., null, null, null, scope) //获取注入的 ViewModel ViewModelLazy(it.kotlin, { viewModelStore

    1.5K20
    领券