草庐IT

lifecycle-viewmodel-ktx

全部标签

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 Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理】(一)

解耦是软件开发中永恒的话题,面对这个话题,思想、方法方面的总结,就是我们平常所说的设计模式,经验丰富的开发人员,可以在代编码过程中,灵活使用各种设计模式,从而进行代码逻辑、业务、UI等等方面的解耦。但是,大家也知道,针对于初级开发人员来说,让刚开始编码就要考虑到这些,往往是强人所难的,所以这时,一个词汇应运而生组件。具体来说,很简单,就是有经验的开发人员,将某一功能,封装为单独的组件,供其他研发使用,那么对于开发人员,一方面不再需要自己去编码实现某一功能的实现和封装,另外一方面,针对于有经验的研发人员来说,无疑他们在实现组件的过程中,可以将自己的实际编码经验、解耦经验、设计模式应用经验等等,应

Android Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理】(一)

解耦是软件开发中永恒的话题,面对这个话题,思想、方法方面的总结,就是我们平常所说的设计模式,经验丰富的开发人员,可以在代编码过程中,灵活使用各种设计模式,从而进行代码逻辑、业务、UI等等方面的解耦。但是,大家也知道,针对于初级开发人员来说,让刚开始编码就要考虑到这些,往往是强人所难的,所以这时,一个词汇应运而生组件。具体来说,很简单,就是有经验的开发人员,将某一功能,封装为单独的组件,供其他研发使用,那么对于开发人员,一方面不再需要自己去编码实现某一功能的实现和封装,另外一方面,针对于有经验的研发人员来说,无疑他们在实现组件的过程中,可以将自己的实际编码经验、解耦经验、设计模式应用经验等等,应

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