草庐IT

viewmodel

全部标签

android - 使用 Dagger 2 + Kotlin + ViewModel 注入(inject) ViewModel

classSlideshowViewModel:ViewModel(){@InjectlateinitvarmediaItemRepository:MediaItemRepositoryfuninit(){Whatgoeshere?}所以我正在尝试学习Dagger2,以便让我的应用更易于测试。问题是,我已经集成了Kotlin并且正在开发Android架构组件。我知道构造函数注入(inject)更可取,但这对于ViewModel是不可能的。相反,我可以使用lateinit来注入(inject),但我不知道如何注入(inject)。我需要为SlideshowViewModel创建一个Com

android - 如何从后台服务更新 ViewModel 的 LiveData 并更新 UI

最近我正在探索谷歌最近推出的Android架构。来自Documentation我发现了这个:publicclassMyViewModelextendsViewModel{privateMutableLiveData>users;publicLiveData>getUsers(){if(users==null){users=newMutableLiveData>();loadUsers();}returnusers;}privatevoidloadUsers(){//doasyncoperationtofetchusers}}Activity可以按如下方式访问此列表:publicclas

AndroidViewModel 与 ViewModel

随着Android架构组件库的引入,引入了几个新类,包括AndroidViewModel和ViewModel。但是,我无法弄清楚这两个类之间的区别。documentation简明扼要地描述AndroidViewModel如下:ApplicationcontextawareViewModel我很欣赏它的简洁性,但这究竟意味着什么?我们什么时候应该选择使用AndroidViewModel而不是ViewModel,反之亦然? 最佳答案 AndroidViewModel提供应用上下文如果您需要在Viewmodel中使用上下文,您应该使用An

asp.net-mvc - 具有自定义格式的 ASP.NET MVC ViewModel 映射

我正在处理的项目在域模型中有大量货币属性,我需要将它们格式化为$#,###.##用于传输到View和从View传输。我对可以使用的不同方法有一个看法。一种方法是在View内显式格式化值,如"Pattern1"fromSteveMichelotti:...但这开始违反DRYprinciple很快。首选方法似乎是在DomainModel和ViewModel之间的映射期间进行格式化(根据ASP.NETMVCinAction第4.4.1节和"Pattern3")。使用AutoMapper,这将产生如下代码:[TestFixture]publicclassViewModelTests{[Test

asp.net-mvc - 具有自定义格式的 ASP.NET MVC ViewModel 映射

我正在处理的项目在域模型中有大量货币属性,我需要将它们格式化为$#,###.##用于传输到View和从View传输。我对可以使用的不同方法有一个看法。一种方法是在View内显式格式化值,如"Pattern1"fromSteveMichelotti:...但这开始违反DRYprinciple很快。首选方法似乎是在DomainModel和ViewModel之间的映射期间进行格式化(根据ASP.NETMVCinAction第4.4.1节和"Pattern3")。使用AutoMapper,这将产生如下代码:[TestFixture]publicclassViewModelTests{[Test

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 )

文章目录一、LiveData简介二、LiveData使用方法三、ViewModel+LiveData简单示例1、ViewModel+LiveData代码2、Activity组件代码3、运行效果展示四、ViewModel+LiveData+Fragment通信示例1、ViewModel+LiveData代码2、Activity组件代码Activity代码布局文件3、Fragment代码第一个Fragment代码第一个Fragment布局文件第二个Fragment代码第二个Fragment布局文件4、运行效果展示一、LiveData简介在视图View与数据模型Model通过ViewModel架构组

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 )

文章目录一、LiveData简介二、LiveData使用方法三、ViewModel+LiveData简单示例1、ViewModel+LiveData代码2、Activity组件代码3、运行效果展示四、ViewModel+LiveData+Fragment通信示例1、ViewModel+LiveData代码2、Activity组件代码Activity代码布局文件3、Fragment代码第一个Fragment代码第一个Fragment布局文件第二个Fragment代码第二个Fragment布局文件4、运行效果展示一、LiveData简介在视图View与数据模型Model通过ViewModel架构组

Android MVI 模式的封装实现(基于kotlin FLow 和 ViewModel)

文章目录MVI的简单理解定义Intent和State定义BaseViewModelViewModel实现类与View强相关的VM实现一个通用的VM实现View层实现BaseMviActivity、BaseMviFragment、BaseMviUi实现I.BaseMviActivityII.BaseMviFragmentIII.BaseMviUi一些注意点参考:后记增加默认的错误消息处理(2022-12-25更新)BaseMviViewModel优化(2023-03-17更新)MVI的简单理解MVI是Model-View-Intent的缩写,它也是一种响应式+流式处理思想的架构。MVI的Mode

Android MVI 模式的封装实现(基于kotlin FLow 和 ViewModel)

文章目录MVI的简单理解定义Intent和State定义BaseViewModelViewModel实现类与View强相关的VM实现一个通用的VM实现View层实现BaseMviActivity、BaseMviFragment、BaseMviUi实现I.BaseMviActivityII.BaseMviFragmentIII.BaseMviUi一些注意点参考:后记增加默认的错误消息处理(2022-12-25更新)BaseMviViewModel优化(2023-03-17更新)MVI的简单理解MVI是Model-View-Intent的缩写,它也是一种响应式+流式处理思想的架构。MVI的Mode

【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 )

文章目录一、Activity遇到的问题二、视图View和数据模型Model三、ViewModel架构组件作用四、ViewModel代码示例1、ViewModel视图模型2、Activity组件3、UI布局文件4、运行效果五、ViewModel生命周期六、ViewModel使用注意事项一、Activity遇到的问题Activity遇到的问题:瞬态数据丢失:操作Activity时,如果屏幕自动旋转,当前Activity组件会执行销毁操作,并重新创建新的Activity组件,该操作会导致Activity的瞬态数据丢失;内存泄漏:在系统组件如Activity中,启动了一个线程,在线程中执行一系列操作,