草庐IT

Jetpack学习之ViewModel、Lifecycles、LiveData

全部标签

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

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

android - 如何使用 livedata 进行数据绑定(bind)?

如何使用livedata进行数据绑定(bind)?activity_user_detail.xml:用户View模型.java:publicclassUserViewModelextendsViewModel{publicLiveDatauser;publicvoidgetUserById(UserDaouserDao,StringuserId){transaction=UserDao.load(userId);}}用户道.java:@Query("SELECT*FROM`user`WHEREid=:userId")LiveDataload(StringuserId);UserDeta

LiveData 的 Android 测试

我有这个模拟课:classMockCategoriesRepositoryimplementsCategoriesRepository{@OverridepublicLiveData>getAllCategories(){Listcategories=newArrayList();categories.add(newCategory());categories.add(newCategory());categories.add(newCategory());MutableLiveData>liveData=newMutableLiveData();liveData.setValue(c

android - 在 ViewModel 之间共享数据

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

物联网AI MicroPython学习之语法 实时时钟RTC

学物联网,来万物简单IoT物联网!!RTC介绍模块功能:实时时钟RTC驱动模块接口说明RTC-构建RTC对象函数原型:RTC()参数说明:无返回值:构建的RTC对象。datetime-RTC时钟操作函数原型:datetime([datetimetuple])参数说明:参数类型必选参数?说明[datetimetuple]dataN格式:(年,月,日,星期几,时,分,秒,亚秒)无参数,返回时间有参数,设置时间返回值:无参数,返回时间,格式**(年,月,日,星期几,时,分,秒,亚秒)**now-获取当前时间函数原型:now()参数说明:无返回值:返回当前时间,格式**(年,月,日,星期几,时,分,秒

RabbitMQ快速学习之WorkQueues模型、三种交换机、消息转换器(SpringBoot整合)

文章目录前言一、WorkQueues模型消息发送消息接收能者多劳二、交换机类型1.Fanout交换机消息发送消息接收2.Direct交换机消息接收消息发送3.Topic交换机消息发送消息接收三、编程式声明队列和交换机fanout示例direct示例基于注解四、消息转换器总结前言WorkQueues模型、Fanout交换机、Direct交换机、Topic交换机、基于SpringBoot注解声明队列和交换机、消息转换器。一、WorkQueues模型Workqueues,任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息

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