草庐IT

lifecycle-viewmodel-ktx

全部标签

android - fragment 中的 ViewModel 清除屏幕旋转时的值

我想我在这里遗漏了一些明显的东西,但是......我将数据存储在DiaryViewModel类的uiModel中,并且由于我使用架构组件,所以我希望通过屏幕旋转保留数据-但事实并非如此。我不知道为什么。这是一个精简的fragmentclassDiaryFragment:Fragment(){privatelateinitvarviewModel:DiaryViewModeloverrideonCreateView(...){viewModel=ViewModelProviders.of(this).get(DiaryViewModel::class.java)viewModel.get

android - 在 ViewModel 之间共享数据

我的项目中有一个复杂的屏幕,我将其分成多个fragment。我试图遵循这些类的MVVM架构,所以哪个fragment有自己的ViewModel和契约(Contract)类。问题是所有ViewModel都需要相同的对象实例(我们称它为Book)来执行Room事务。是否有在ViewModel之间共享数据(或LiveData)的正确方法?我知道SharedViewModel的概念,但我不知道我是否可以将它应用于这种情况。我也考虑过使用MediatorLiveData但也没有找到好的方法。我正在考虑用BookObservableProvider上课(我们称之为LiveData)(或RxSubj

Android MVVM - 如何在 ViewModel 中引用 Activity

MVVM架构,这是我的View(Activity):privateMyAppapp;privateMainActivityVMviewModel;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);app=(MyApp)this.getApplication();ActivityMainBindingbinding=DataBindingUtil.setContentView(this,R.layout.activity_main);MainActivit

android - 使用 Dagger2 (Robolectric) 模拟 jetpack ViewModel 进行单元测试

所以我正在尝试使用Robolectric为我的Activity编写单元测试,但是我不知道如何提供模拟View模型,因为我的虚拟机是如何在类中直接实例化的。这是因为Jetpack的生命周期感知ViewModel需要一个Provider类来实例化。所以,我实际上是在注入(inject)自定义提供程序,然后使用它来创建我的ViewModel。我看过其他示例,但它们看起来都非常令人困惑。我如何实现这一点?classActivityEpisodeList:AppCompatActivity(){@InjectlateinitvarvmFactory:ViewModelProvider.Facto

android - 如何通过viewModels获取viewModel? ( fragment -ktx)

我正在为Activity及其所有fragment使用SingleviewModel。所以要初始化viewmodel如果必须在所有fragment的onActivityCreated中编写此设置代码overridefunonActivityCreated(savedInstanceState:Bundle?){super.onActivityCreated(savedInstanceState)viewModel=ViewModelProviders.of(activity!!).get(NoteViewModel::class.java)}我正在浏览AndroidKTX扩展页面:(re

安卓架构组件 : bind to ViewModel

我对使用新架构组件时数据绑定(bind)的工作方式感到有点困惑。假设我有一个简单的Activity,其中包含一个列表、一个ProgressBar和一个TextView。Activity应该负责控制所有View的状态,但是ViewModel应该保存数据和逻辑。例如,我的Activity现在看起来像这样:@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);binding=DataBindingUtil.setContentView(this,R.layout.

android - Android JetPack 的共享 ViewModel 生命周期

文档https://developer.android.com/topic/libraries/architecture/viewmodel#sharing描述了我们如何在不同的Fragment之间共享同一个ViewModel。我的单个Activity应用程序中有一些复杂的页面,其中包含容器和选项卡fragment。每个这样的页面都有自己的ViewModel,它应该与所有包含的fragment共享。这里的关键技巧是使用Activity而不是Fragment来保存我的ViewModel。问题是我的Activity可以有多个页面和自己的模型,并且一直保持特定页面的View模型是设备资源的浪

android - Android MVVM 中的服务和 ViewModel——它们如何交互?

我使用Android架构中的ViewModels已经有一段时间了,并且遵守从不将ViewModel暴露给Context/Views(AndroidFramework/UI)的规定。然而,最近我遇到了一个有趣的问题。制作定时器应用程序时,当定时器启动时,服务会在运行定时器的后台运行。这样,当应用程序关闭时,计时器仍然在通知栏的前台运行,直到所有计时器都停止。但是,这意味着我的所有Timer对象和状态都包含在此服务中。我的UI需要在每次更新时更新,但模型不一定需要更新ViewModels如何适应这种情况?Activity是否应该每次都接收LocalBroadcasts并通知ViewMode

android - MVVM 在 MvxBindableListView 中交叉更改 ViewModel

我的Android应用程序有点问题,我不知道如何使用MVVMCross解决它。这是我的模型publicclassArticle{stringLabel{get;set;}stringRemark{get;set;}}我的View模型publicclassArticleViewModel:MvxViewModel{publicListArticles;....}我的layout.axml......我的问题来了,“article_rowlayout”......名为“MyTest”的“单击”命令链接到MvxBindableListView提供的项目上。换句话说,单击在我的模型“文章”中搜

android - MVVM - 实现谷歌地图并在 ViewModel 中拥有上下文?

所以我正在学习MVVM,喜欢它。但是..到目前为止我的问题如下:使用MVVM实现谷歌地图。(我是在Activity上还是在ViewModel上做?我只能在Activity上实现它..)尤其是CONTEXT..可以像下面这样传递吗?I'musingthislibrary.这是我的View模型:publicclassDashboardViewModelimplementsViewModel{publicfinalObservableFielddashButton=newObservableField("");publicfinalActiononRandomSearch;privateCo