草庐IT

Android MVVM - 如何让 LiveData 发出它拥有的数据(强制触发观察者)

我有一个从网络获取列表的ViewModel,我用数据填充了一个RecyclerView(MyAvailabilityRepository返回一个MutableLiveData,这就是我使用Transformations.switchMap的原因):classMyAvailabilityViewModel:ViewModel(){privatevalgetListsParams=MutableLiveData()privatevalgetListsObservable=Transformations.switchMap(getListsParams){organizationId->My

android - 最佳实践 MVVM 将数据从一个 Activity 传递到另一个 Activity

将数据从一项Activity(主)传递到另一项Activity(细节)的当前最佳实践是什么。一种可能的方法是拥有一个在主视图和细节View之间共享的View模型类。单击主Activity中的项目时,所选条目将设置为View模型。详细Activity,因此可以读取所选条目,因为它使用相同的View模型。将所选对象的行ID作为bundle-extra从master-activity传递到detailActivity。详细信息Activity使用ViewModelProviders加载它的View模型,然后将row-id传递给加载实际记录的View模型。在启动详细Activity之前初始化V

android - MVVM (Android) 中的文件结构

使用MVVM或MVP我应该命名模型、View模型、View等包并将适当的类和接口(interface)放在那里,还是它只是一个不应在类结构中可见的逻辑结构? 最佳答案 如果您想照章办事,当前在Android中实现MVVM的“正确”方法是Android架构组件库集。阅读更多相关信息here,然后尝试thiscodelab.这些还将向您展示如何命名和放置您的类。但一般来说,您应该选择最适合您的应用的内容。对于较小的应用程序,我会建议使用MVP文件夹,而对于更大、更长期的应用程序,倾向于使用每个功能的文件夹结构更好。

【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案

最近在实践MVVM,发现这玩意儿挺有意思的,有点WPF的最佳搭档的感觉。UI自动跟随VM变化,极大程度上简化各类逻辑。UI元素的各种属性也会实时反馈到VM上,直接在VM处理事务逻辑即可。但是MVVM在WPF上应用,最烦的就是要自己写一大堆Get/Set,以及匹配INotifyPropertyChanged的调用。虽然VisualStudio里有对应的codesnippet:propfull来完成快速完成这个事情,但是仍然要手动补全OnPropertyChanged()的调用,而且也要打很多字,十分不方便。然后嘛,这种事情肯定早就有人造了轮子解决了。网上一搜,CommunityToolkit.M

Android - 带有 LiveData 组件的 MVVM 和 Repository 中的 Retrofit 调用

我想将以下组件用于身份验证View(登录):MVVM实时数据改造存储库我不知道如何接收Repository类中对当前ViewModel的异步Retrofit调用。View->ViewModel->RepositorywithLiveData。有人会有想法或例子来实现这个吗? 最佳答案 你可以像下面这样:YourActivity.ktclassYourActivity:AppCompatActivity(){privatevalmyViewModelbylazy{return@lazyViewModelProviders.of(thi

没有数据绑定(bind)的android MVVM

问题:我可以在不使用数据绑定(bind)的情况下使用MVVM实现android应用吗?我要解决的问题非常简单:从后端API读取项目列表并在Recylerview中显示它们。我是如何实现的:在View中-我有Activity和RecyclerViewAdapter模型:ApiResponse和数据模型网络-改造API服务,RxJava2对于ViewModel部分-我有一个ViewModel类(不派生自任何东西)基本上调用RetrofitService并使用RxJava调用获取数据。ViewModel有如下调用:voidgetItems();voidaddItemData();voidre

android - MVVM Dagger2 组件中存在具有匹配键的绑定(bind)

我正在使用以下谷歌示例项目:https://github.com/googlesamples/android-architecture-components作为我的新项目的引用,并且在尝试向该项目添加第二个Activity时遇到困难。这是我在编译时遇到的错误Error:(22,8)error:[dagger.android.AndroidInjector.inject(T)]com.apps.myapp.ui.common.MainActivitycannotbeprovidedwithoutan@Injectconstructororfroman@Provides-annotated

android - 如何在 mvvm android 中显示对话框

显示对话框,在MVVM中启动Activity是View的责任。在View中,您有一个VM实例,但在VM中您没有View实例。所以解决方案是使用实时数据并在View中观察,对吗?但是我不想使用实时数据呢?当我无权查看时如何显示对话框? 最佳答案 使用某种版本的观察者模式是唯一的方法!甚至定义一个接口(interface)并让View实现该接口(interface)基本上也是在使用观察者模式。javaObservable、RxObservable和LiveData所做的是,它们使这个过程变得super简单。

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 - 在mvvm android中放置点击监听器的位置

我试图在我的android项目中遵循MVVM设计模式,但我遇到了一些问题:1.如果操作是传输到另一个Activity/fragment或执行一些逻辑而不重定向到另一个View,我不知道将点击监听器放在哪里,将其放入ViewModel或View2.我知道共享首选项将被放入模型中,但只为所有共享首选项创建一个单独的类或将其放入模型类示例中:在登录时,我想保存用户名和密码我是否使我的共享首选项功能在UserModel或创建一个新类并将其命名为SharedPreference??提前致谢。 最佳答案 将点击监听器放在您的Activity/f