草庐IT

lifecycle-viewmodel-ktx

全部标签

java - 从 ViewModel 启动 DialogFragment 的推荐方法是什么?

我在Recyclerview中有一个列表对象。当长按一个项目时,我想显示一个对话框,其中包含单击项目的数据。Recyclerview为每个项目使用数据绑定(bind),我可以在长按时使用Log显示所选项目的数据。但是,当尝试显示对话框时,您需要访问Activity,不建议在ViewModel对象中使用它。那么如何显示对话框呢?谢谢,欧维 最佳答案 从概念上讲,我认为ViewModel是启动对话框的错误位置。为了更干净地做到这一点,我会将RecyclerView.ViewHolder传递到布局中,并在ViewHolder上有一个方法来

屏幕旋转后 Android Arch 组件 ViewModel 和 LiveData 触发

我在使用ViewModel和LiveData架构组件时遇到问题。当使用fragments并旋转屏幕时,观察者会被触发...我试图移动viewModel=ViewModelProviders.of(this).get(MainViewModel::class.java)在所有fragment生命周期方法中,但没有成功。我的场景相对简单:带有电子邮件和密码的登录屏幕用户点击“登录”按钮viewmodel调用login(email,password)并设置LiveData对象的值暂时简单地toast此时一切正常。但是当我旋转屏幕时,Toast会再次出现而无需任何用户交互。我必须在onDest

android - 如何获取Android中DataBinding的ViewModel类中的R.string

我目前正在为我的android应用程序项目使用databinding。我想在我的CustomTextView上设置来自R.string.txtOldPassWordError的error消息,并从另一个名为ViewModelClass.这是我的XML代码这是ViewModelClass.javapublicclassChangePasswordViewModelextendsBaseObservable{publicObservableFielduserOldPassword=newObservableField("");publicvoiduserPasswordChange(){i

android - Viewmodel 观察 LiveData - 如何?

在Lifecycle和LiveData之前,Viewmodel可以很容易地观察到它自己的可观察对象的变化。只需订阅Observable*的更改并对它们使用react即可。然后可能会使用双向绑定(bind)来立即对用户的输入使用react。在AndroidStudioCanary中,现在允许绑定(bind)到LiveData对象,前提是Binding知道其所有者的生命周期(ViewBinding现在有额外的setLifecycle方法),AndroidStudioCanaryinformation:YoucannowuseaLiveDataobjectasanobservablefiel

c# - 将变量从 ViewModel 传递到另一个 View (MVVMCross)

在过去的几周里,我一直致力于使用MVVMCross框架开发跨平台应用程序(IOS/Android/WP7)。今天我遇到了一个我真的不知道如何解决的问题,所以希望你能把我推向正确的方向。在IOS中,我有以下用于导航到另一个页面的结构(下面的代码位于ViewModel中):KeyValuePairkvpAct1=newKeyValuePair("short",".countertest5");publicIMvxCommandBeckhoffActuator1{get{returnnewMvxRelayCommand((type)=>this.RequestNavigate(kvpAct1

Service 中的 Android ViewModel(备选)

我有一项服务可以提供大多数时间对用户可见的UI。当我遇到问题时,我正在尝试新的应用程序架构。MyModelviewModelviewModel=ViewModelProviders.of(this).get(MyModelviewModel.class);但如您所知,this只能是AppCompat或Fragment还有其他选择吗?或者我可以将观察者直接放在我的LiveData上,就像我放在ViewModel上一样viewModel.getList().observe(Playground.this,newObserver>(){@OverridepublicvoidonChanged

android - 如何使用 MvvmCross fluent API 将 RecyclerView 项目的 TextView 绑定(bind)到 Android 上其 ViewModel 的属性?

我在我的XamarinAndroid项目中使用MvvmCross。我有一个带有MvxRecyclerView的MvxActivity,我在其布局文件中分配了一个项目模板。ViewModel非常简单,它只包含一个属性,该属性保存要在RecyclerView中显示的数据:publicclassMainViewModel:MvxViewModel{privateIEnumerable_viewModelItems;publicIEnumerableViewModelItems{get{return_viewModelItems;}set{SetProperty(ref_viewModelIt

Android - MVVM 中 ViewModel 状态的最佳实践?

我正在开发一个Android应用程序,它使用MVVM模式以及LiveData(可能是转换)和View和ViewModel之间的DataBinding。由于应用程序正在“增长”,现在ViewModels包含大量数据,并且大部分后者都保留为LiveData以让Views订阅它们(当然,UI需要此数据,无论是双向绑定(bind)还是每个EditTexts或单向绑定(bind))。我听说(并在谷歌上搜索过)有关在ViewModel中保留表示UI状态的数据的信息。然而,我发现的结果只是简单而通用的。我想知道是否有人有提示或可以分享有关此案例最佳实践的一些知识。简而言之,考虑到可用的LiveDat

android - 从 Fragment 返回时,ViewModel onchange 被多次调用

我正在处理Android架构组件。我想要的是当用户在Edittext中键入“0”并单击Button以用新Fragment替换Fragment时,如果键入任何其他内容,则发布Toast错误消息。问题是当我从新的Fragment(BlankFragment)返回并再次单击按钮并再次键入“0”并单击时,onchange()被多次调用所以Fragment是多次创建FragmentExample.class:@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceSt

android - 如何使用新的 androidx.lifecycle :*:2. 2.0-alpha01 获取 lifecycle.coroutineScope

2019年5月7日androidx.lifecycle:*:2.2.0-alpha01发布公告:ThisreleaseaddsnewfeaturesthataddssupportforKotlincoroutinesforLifecycleandLiveData.Detaileddocumentationonthemcanbefoundhere.关于documentation提到我可以获得LifecycleScope:eithervialifecycle.coroutineScopeorlifecycleOwner.lifecycleScopeproperties但是我好像一个也找不到