android-livedata相关内容
我对LiveData的理解是,它会在数据的当前状态变化上触发观察者,而不是数据的一系列历史状态变化. 目前,我有一个MainFragment,它执行Room写操作,将非垃圾数据更改为垃圾数据. 我还有另一个TrashFragment,它观察垃圾数据. 考虑以下场景. 目前有 0 个已删除的数据. MainFragment 是当前的活动片段.TrashFragment 尚未
..
看起来 MutableLiveData 与 LiveData 的区别仅在于创建了 setValue() 和 postValue() 方法公开,而在 LiveData 中,它们受到保护. 为什么要为此更改创建一个单独的类,而不是简单地在 LiveData 本身中将这些方法定义为公共方法? 一般来说,这种继承形式(增加某些方法的可见性是唯一的变化)是一种众所周知的做法吗?它在哪些场景中可能
..
我试图在下面的代码中找出为什么在我用新数据填充数据库后 Room 的 LiveData observable 没有给我新的变化. 这是放在我的活动的 onCreate 方法上: shiftsViewModel = ViewModelProviders.of(this).get(ShiftsViewModel.class);移动视图模型.getShifts().observe(this, t
..
是否可以防止 LiveData 在开始观察时接收到最后一个值?我正在考虑使用 LiveData 作为事件. 例如显示消息、导航事件或对话触发器等事件,类似于EventBus. ViewModel 和fragment 之间的通信问题,Google 给了我们LiveData 来更新view 的数据,但是这种类型的通信不适合我们需要更新的时候单个事件只查看一次,我们也不能在 ViewMode
..
我是 Android Studio 开发的新手,其中大部分内容都很简单.似乎这些概念是相当新的,而且 Google 的文档要么写得不好,要么只是让我非常困惑.即使在这里查看其他问题也不足以为我澄清这一点. 到目前为止,我在我的应用程序中所拥有的是用户注册或登录,其中用户的字符保存到数据库中或从数据库中检索.在当前状态下,登录和注册与数据库一起工作,插入和检索他们的角色会相应地更新 UI.
..
我决定优化我的代码,因此切换到 liveData.我遵循了 youtube 上的教程(youtube 链接)但我不太明白如何在用户输入单词时过滤我的 recyclerView,因为我没有在我的适配器中存储任何列表.我在 MainActivity 上使用了一个简单的搜索视图过滤系统. 此外,我使用 DiffUtil 更新我的 recyclerView 并更新我的适配器,感谢: noteVie
..
我决定优化我的代码,因此切换到 liveData.我遵循了 youtube 上的教程(youtube 链接)但我不太明白如何在用户输入单词时过滤我的 recyclerView,因为我没有在我的适配器中存储任何列表.我在 MainActivity 上使用了一个简单的搜索视图过滤系统. 此外,我使用 DiffUtil 更新我的 recyclerView 并更新我的适配器,感谢: noteVie
..
我知道 MutableLiveData 扩展了 LiveData,但它们之间有什么区别(在用法上).什么是合适的用例,意味着什么时候从两者中使用正确的一个? 解决方案 LiveData 是不可变的,而 MutableLiveData 是可变的.MutableLiveData 扩展了 LiveData 并提供了诸如 setValue() 和 postValue() 之类的方法.
..
当我在 Android Studio 中按下运行按钮时,我的应用程序编译但显示此错误(已编辑): 错误:程序类型已经存在:android.arch.lifecycle.LiveData (完整日志) 我尝试删除 .gradle 文件夹,然后转到 Build >Clean Project 和 Build >重建项目.但是,它不起作用.我还尝试删除源代码,然后从 git 再次克隆并将文件夹导
..
我正在使用 SingleLiveEvent 来传达我的 ViewModel 和我的活动.类似的东西(伪代码): class MyActivity: BaseActivity{有趣的 onCreate(){//初始化视图模型等viewModel.commands.observe(this, { command ->logger.debug(“接收到的命令",“------>>>>>>>>"+co
..
我正在创建一个应用程序,它将使用 SearchView 让用户进行查询以过滤数据.我正在使用 RoomDB,并尝试遵循 中推荐的 Model-View-ViewModel 架构Android 开发者指南. 我有一个实体和一个 DAO(现在我的数据库只有一张表).我在 DAO 中有一个方法,如下所示: @Query(“SELECT * FROM table WHERE column1 = :
..
这个问题是我为我的其他问题,因此,如果您对第一个问题有解决方案可以避免此问题,那么我会全力以赴. 所以我在 Dao (getPageCombinedData) 中有这个方法,它用 @transaction 注释并且应该返回一个 MediatorLiveData,我想既然 MediatorLiveData 是 LiveData 的子类,那么Room 将提供必要的代码以使用其文档中引用的后台线程
..
在我的一个 android 应用程序中,首先我想调用一个 api,它将返回一个项目列表,该项目将显示在 RecyclerView 中.我还需要为 RecyclerView 的每个项目调用另一个 api 以获取该项目的描述并根据它们的 id 显示每个项目的描述.我该如何解决这种情况. Subject.kt 数据类主题(val 主题:字符串,val 主题代码:字符串,val 主题图标:字符串,
..
我正在编写一个程序,其中有两个 LiveData 对象,如图所示: 公共 LiveData选择的图像;public LiveData>selectedBitmaps= Transformations.map(chosenImages, (placeimags) ->{ArrayListbitmaps=new ArrayList();for(PhotoI photoI:placeimags.ima
..
我正在 Android 应用程序中使用 ViewModels 和 LiveData,我想使用它们来跟踪 Activity 的数据,即使屏幕旋转.这很有效,但有一个我无法解决的问题.在 Activity 的 onCreate 方法中,我为包含对象列表的 LiveData 注册了一个观察者,如果加载了数据,它应该只向活动添加一个 Fragment.然后,我只在 savedInstanceState 为
..
我已阅读 Android LiveData 文档: 您可以使用 observeForever(Observer) 方法注册一个没有关联 LifecycleOwner 对象的观察者.在这种情况下,观察者被视为始终处于活动状态,因此始终会收到有关修改的通知.您可以调用 removeObserver(Observer) 方法删除这些观察者. 我正在使用 ViewModel 使用 MVVM 架
..
我在这里阅读了如何使用协程https://developer.android.com/主题/库/架构/协程.让我困惑的是 LiveDataScope 和 ViewModelScope 之间的区别.听起来 ViewModelScope 会自动处理生命周期,您可以在块中进行网络请求.当从服务器接收到数据时,将值发布到 livedata.但是当我继续阅读时,还有另一个关于 LiveDataScope 的
..
在将 Jetpack Compose 升级到 1.0.0‑beta07 后,在 LiveData 对象上运行 observeAsState 时出现以下错误. java.lang.NoSuchMethodError: Landroidx/compose/runtime/Composer 类中没有接口方法 startReplaceableGroup(ILjava/lang/String;)V;或者它
..
我正在创建一个 Android 应用程序并尝试在 Recyclerview 中设置数据,我正在使用带有 kotlin 的 MVVM 架构模式,我可以在 logcat 中看到数据,但是当应用程序加载时,我在我的 recyclerview 中没有看到任何数据.以下是我的代码. 主活动 class MainActivity : AppCompatActivity() {lateinit var
..
如何将 LiveDataReactiveStreams 中的值发布到 MutableLiveData?我想实现到 Switch(视图)的双向数据绑定,并将“检查"值从数据库传递到 MutableLiveData 以及从 UI 传递.LiveDataReactiveStreams 仅返回不可变的 LiveData. //视图模型public final MutableLiveDataswitchC
..