草庐IT

Jetpack学习之ViewModel、Lifecycles、LiveData

全部标签

Android笔记(六):JetPack Compose常见的UI组件

一、文本组件1.1TextColumn(modifier=Modifier.fillMaxSize().background(Color.Green).padding(10.dp)){Text(text=stringResource(id=R.string.title_content),modifier=Modifier.fillMaxWidth().border(BorderStroke(1.dp,Color.White)),fontSize=20.sp,textAlign=TextAlign.Center,maxLines=5)Text(text="测试文本2",modifier=Modi

android - 如果使用标准 Fragment,LiveData 不会调用 LifecycleRegistryOwner

我正在尝试将标准Androidfragment与LiveData一起使用。更新由房间数据库中的更新触发。不幸的是我的观察者没有被触发。示例代码:publicclassMyListFragmentextendsFragmentimplementsLifecycleRegistryOwner{LifecycleRegistrymLifecycleRegistry=newLifecycleRegistry(this);@OverridepublicLifecycleRegistrygetLifecycle(){returnmLifecycleRegistry;}@Overridepublic

android - Kotlin dagger 2 Android ViewModel注入(inject)错误

我正在尝试在我的Android应用程序上使用dagger2从archandroid库中注入(inject)新的ViewModel。从我在这个样本上看到的https://github.com/googlesamples/android-architecture-components/tree/e33782ba54ebe87f7e21e03542230695bc893818/GithubBrowserSample我需要使用这个:@MustBeDocumented@Target(AnnotationTarget.FUNCTION,AnnotationTarget.CONSTRUCTOR,An

android - LiveData 'dispatchingValue' 方法 : No virtual method iteratorWithAdditions() 中的致命异常

我有一个带有观察我的LiveData的viewModel的View。我从存储库获取数据(从Room或WebAPI获取数据)。我已经实现了一个NetworkBoundResource抽象类,所以我可以管理以更清洁的方式加载数据。此类中使用了MediatorLiveData对象:privatefinalMediatorLiveData>result=newMediatorLiveData();崩溃发生在我的构造函数的第一行:@MainThreadpublicNetworkBoundResource(){result.setValue(Resource.loading(null));fina

android - 从 LiveData.observe() 添加项目到适配器的最佳实践

我有DAO方法返回LiveData>:LiveData>listLiveData=categoryDao.getAll();之后我需要将此数据设置到我的适配器:listLiveData.observe(this,categories->{if(categories==null||categories.isEmpty()){price.setVisibility(View.VISIBLE);recyclerView.setVisibility(View.INVISIBLE);}else{categoryAdapter=newCategoryAdapter(categories);cate

android - LiveData_LifecycleBoundObserver_LifecycleAdapter 无法转换为 GeneratedAdapter

我在我的androidstudio项目中使用kotlin并且我正在尝试将观察者添加到包含ArrayList的MutableLiveData但是我在下面遇到异常。java.lang.ClassCastException:android.arch.lifecycle.LiveData_LifecycleBoundObserver_LifecycleAdaptercannotbecasttoandroid.arch.lifecycle.GeneratedAdaptatandroid.arch.lifecycle.Lifecycling.createGeneratedAdapter(Lifec

android - 当 Room 没有 LiveData 而不是从 REST API 获取时返回 LiveData 的存储库

我正在寻找处理以下用例w.r.t.的建议。实时数据处理:ViewModel为LiveData调用存储库(例如产品目录)。存储库首先从LocalDataSource(Room)检查,但如果数据不可用,则调用RemoteDataSource(RESTAPI)。问题:1)根据yigithere的以下评论,Repository在以观察者身份订阅之前无法获取Room中的LiveData可用性状态。因此,即使数据可用,我也会得到null作为响应。“LiveData就是看数据,然后分发给观察者,直到有活跃的观察者加入,它才会计算值(value)。”由于Repository向客户端隐藏了数据源,因此R

android - ViewModel 中的 ObservableField 值不会使用数据绑定(bind)更新 UI

ObservableField里面的值ViewModel使用EditText更改类值在布局中,但是值不会传播到TextViewtv_summary.这是布局View模型类publicclassAddMarkerViewModelextendsAndroidViewModel{privateMarkerRepositorymMarkerRepository;publicObservableFieldmarkerObservableField=newObservableField();publicAddMarkerViewModel(@NonNullApplicationapplicati

android - 如何使用 Jetpack Navigation 从嵌套 fragment 导航到父 fragment ?

我有主导航:SplashFragment->RegistrationFragment->RootFragment我有嵌套的注册导航:RegistrationPersonalFragment->RegistrationContactFragment->RegistrationSecurityFragment如何使用JetpackNavigation组件从最后嵌套的RegistrationSecurityFragment重定向到RootFragment?目前和navigateTo(R.id.action_next)给我java.lang.IllegalArgumentException:n

android - 如何使用 Koin 在 BaseFragment 中注入(inject) viewModel

我已经创建了一个抽象的BaseFragment类,它将被其他具体的Fragment类扩展。我想使用Koin在我的BaseFragment中注入(inject)ViewModel。这是我的BaseFragment:abstractclassBaseFragment(privatevalmViewModelClass:Class):Fragment(){valviewModel:VMbyviewModel()openlateinitvarbinding:DBfuninit(inflater:LayoutInflater,container:ViewGroup){binding=DataBi