草庐IT

Jetpack-MVVM

全部标签

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

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

Android---Jetpack之Navigation

目录Navigation的诞生为此,Jetpack提供了Navigation组件,旨在方便我们管理页面和AppBar。  Navigation的优势Navigation的主要元素Navigation应用添加页面切换动画效果 普通方式与safeargs 插件方式参数传递深层链接DeepLink完整DemoNavigation的诞生Activity嵌套多个Fragment的UI架构模式已经非常普遍,但是对Fragment的管理一直是一件比较麻烦的事情。我们需要通过FragmentManager和FragmentTransaction来管理Fragment之间的切换。页面的切换通常还包括对应用程序A

没有数据绑定(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 - 使用 Jetpack 导航将自定义过渡动画添加到底部导航设置

我正在开发一个使用Jetpack组件的应用程序。如guide中所述,我用三个fragment拼接了底部导航。.但是,我无法弄清楚如何在按下相应的导航按钮时在fragment之间切换时更改过渡动画。据我所知,有两种创建转换的方法:将它们作为选项传递到navigate()中,在本例中未明确调用;使用带有动画属性的Action,但不知道如何告诉导航使用这些Action。也许给它一个特定的ID会起作用?那么如何设置自定义过渡动画而不必放弃使用BottomNavigation.setupWithNavController(navController) 最佳答案

Android笔记(七)Android JetPack Compose组件搭建Scaffold脚手架

在去年2022年曾发布一篇关于脚手架的文章:“AndroidJetPackCompose组件中Scaffold的应用”。但是Android的版本从12变更到13及以上版本,导致一些细节的实现存在不同。在本文中,将从头开始介绍整个脚手架的搭建过程。一、新建项目模块在AndroidStudio(版本是Graffie)中新建模块,选择“EmptyActivity",如图1所示。图1二、定义脚手架Scaffold@OptIn(ExperimentalMaterial3Api::class)@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")@

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

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

android - 在mvvm android中放置点击监听器的位置

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