android相关内容

带有 ViewPager 和 TabLayout 的 Android Jetpack 导航

对于一个新的应用程序,我使用 Jetpack 导航库来实现正确的返回导航.第一级导航是导航抽屉,如文档中所述,它可以与喷气背包导航配合使用.但是还有另一个层次的导航是用 ViewPager 和 TabLayout 实现的.TabLayout 切换的片段包含额外的线性导航层次结构.但是,Jetpack Navigation 似乎不支持 ViewPager/TabLayout.必须实现 Fragmen ..
发布时间:2021-11-27 13:50:06 移动开发

如何使用 LiveData 处理错误状态?

新的 LiveData 可以是在某些场景中用作替代 RxJava 的 observables.但是,与 Observable 不同的是,LiveData 没有错误回调. 我的问题是:我应该如何处理 LiveData 中的错误,例如当它由某些由于 IOException 而无法检索的网络资源支持时? 解决方案 在 Google 的其中一个 ..
发布时间:2021-11-27 13:49:49 移动开发

如何从后台服务和更新 UI 更新 ViewModel 的 LiveData

最近我正在探索谷歌最近推出的 Android 架构.从 文档 我发现了这个: public class MyViewModel extends ViewModel {private MutableLiveData>用户;public LiveData>获取用户(){如果(用户 == 空){users = new MutableLiveData>();加载用户();}回访用户;}私有无效负载用户( ..
发布时间:2021-11-27 13:49:38 移动开发

Room Dao LiveData 作为返回类型导致编译时错误

我正在使用 Room 并实现了返回 LiveData 的 Dao.添加了以下依赖项后,它运行良好. 实现“androidx.room:room-runtime:2.1.0-alpha04"kapt "androidx.room:room-compiler:2.1.0-alpha04" 但是当我添加新的 Room 协程依赖项时,如下所述. 实现“androidx.room:room-runti ..
发布时间:2021-11-27 13:49:27 移动开发

带有导航架构组件的 ViewPager

viewpager 对导航有什么用处吗?我找不到关于此的信息,我不明白如何做到这一点. 我有一个简单的两个片段,需要放在 viewpager 中,如果可能的话,可以通过导航. 解决方案 根据 这个问题: 导航侧重于影响后退堆栈的元素,而标签不影响后退堆栈 - 您应该继续使用 ViewPager 和 TabLayout ..
发布时间:2021-11-27 13:49:18 移动开发

如何在 NavHostFragment 中检索当前片段?

我试图在新的导航组件中找到一个方法,但我没有找到任何关于它的方法. 我有当前目的地: mainHostFragment.findNavController().currentDestination 但我无法获得对显示片段的任何引用. 解决方案 引用显示的片段(AndroidX): Java public Fragment getForegroundFragment(){片 ..
发布时间:2021-11-27 13:49:11 移动开发

<androidx.fragment.app.FragmentContainerView>vs <片段>作为 NavHost 的视图

当使用 androidx.fragment.app.FragmentContainerView 作为导航主机而不是常规的 fragment 时,应用无法在方向更改后导航到目的地. 我收到以下错误:java.lang.IllegalStateException: 没有当前导航节点 是否有我应该知道的正确使用它的问题,或者我使用导航组件的方式不正确? 带有视图的简单活动xml: . ..
发布时间:2021-11-27 13:49:01 移动开发

房间持久化库.删除所有

如何使用 Room Persistence Library 删除特定表上的所有条目?我需要删除表,但找不到如何执行此操作的任何信息. 仅当数据库正在迁移或加载所有条目并删除它们时:) 解决方案 您可以创建一个 DAO 方法来执行此操作. @Dao接口 MyDao {@Query("从 myTableName 中删除")public void nukeTable();} ..
发布时间:2021-11-27 13:48:54 移动开发

为什么新附加的观察者会触发两次 LiveData 观察者

我对LiveData的理解是,它会在数据的当前状态变化上触发观察者,而不是数据的一系列历史状态变化. 目前,我有一个MainFragment,它执行Room写操作,将非垃圾数据更改为垃圾数据. 我还有另一个TrashFragment,它观察垃圾数据. 考虑以下场景. 目前有 0 个已删除的数据. MainFragment 是当前的活动片段.TrashFragment 尚未 ..
发布时间:2021-11-27 13:48:44 移动开发

何时在 Android 中使用 RxJava,何时使用 Android 架构组件中的 LiveData?

我没有得到在 Android 中使用 RxJava 和在 Android 架构组件中使用 LiveData 的理由.如果用例和两者之间的差异以及以代码形式解释之间差异的示例示例一起解释,那将非常有帮助两者兼而有之. 解决方案 Android LiveData 是原始观察者模式的变体,增加了活动/非活动转换.因此,它的范围非常有限. 使用 Android LiveData 中描述的示例 ..
发布时间:2021-11-27 13:48:34 移动开发

无法创建类 ViewModel 的实例

我正在尝试使用 Android 架构组件编写一个示例应用程序,但即使尝试了几天,我也无法让它工作.它给了我上述例外. 生命周期所有者:- public class MainActivity extends LifecycleActivity {public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstan ..
发布时间:2021-11-27 13:48:22 移动开发

Android ViewModel 没有零参数构造函数

我正在关注 this 文档以了解 LiveData 和 ViewModel.在文档中,ViewModel 类具有构造函数, public class UserModel extends ViewModel {私有 MutableLiveData用户;@Inject UserModel(MutableLiveData用户){this.user = 用户;}公共无效初始化(){如果(this.use ..
发布时间:2021-11-27 13:48:13 移动开发

为什么 LiveData 有一个单独的 MutableLiveData 子类?

看起来 MutableLiveData 与 LiveData 的区别仅在于创建了 setValue() 和 postValue() 方法公开,而在 LiveData 中,它们受到保护. 为什么要为此更改创建一个单独的类,而不是简单地在 LiveData 本身中将这些方法定义为公共方法? 一般来说,这种继承形式(增加某些方法的可见性是唯一的变化)是一种众所周知的做法吗?它在哪些场景中可能 ..
发布时间:2021-11-27 13:48:03 移动开发

Android Jetpack Navigation、BottomNavigationView 与 Youtube 或 Instagram 类似正确的返回导航(片段返回堆栈)?

Android Jetpack Navigation、BottomNavigationView 在返回按钮点击时具有自动片段返回堆栈? 我想要的是,在用户一个接一个地选择多个标签后,用户点击后退按钮应用程序必须重定向到他/她打开的最后一页. 我使用 Android ViewPager 实现了相同的效果,方法是将当前选定的项目保存在 ArrayList 中.Android Jetpack ..
发布时间:2021-11-27 13:47:54 移动开发

Room - LiveData 观察者不会在数据库更新时触发

我试图在下面的代码中找出为什么在我用新数据填充数据库后 Room 的 LiveData observable 没有给我新的变化. 这是放在我的活动的 onCreate 方法上: shiftsViewModel = ViewModelProviders.of(this).get(ShiftsViewModel.class);移动视图模型.getShifts().observe(this, t ..
发布时间:2021-11-27 13:47:47 移动开发

Android Room 加入的返回类型

假设我想在两个实体 Foo 和 Bar 之间做一个 INNER JOIN: @Query("SELECT * FROM Foo INNER JOIN Bar ON Foo.bar = Bar.id")列表findAllFooAndBar(); 是否可以强制使用这样的返回类型? 公共类 FooAndBar {福福;吧台;} 当我尝试这样做时,我收到此错误: 错误:无法弄清楚如何从游标读取 ..
发布时间:2021-11-27 13:47:38 移动开发

我如何表示“多对多"?列名相同时与 Android Room 的关系?

我如何表示“多对多"?与房间的关系?我的列名也一样. 例如我有 Guest 和 Reservation.Reservation 可以有多个 Guest,一个 Guest 可以是多个 Reservation 的一部分. 这是我的实体定义: @Entity 数据类 Reservation(@PrimaryKey 有效 ID:长,val 表:字符串,val 客人:List)@Entity ..
发布时间:2021-11-27 13:47:30 移动开发

AndroidViewModel 与 ViewModel

随着 Android 架构组件库的引入,引入了几个新类,包括 AndroidViewModel 和 ViewModel.但是,我无法弄清楚这两个类之间的区别.文档 简洁地将 AndroidViewModel 描述为如下: 应用上下文感知ViewModel 我很欣赏简洁,但这到底意味着什么?我们什么时候应该选择使用 AndroidViewModel 而不是 ViewModel,反之亦然? ..
发布时间:2021-11-27 13:47:22 移动开发

房间持久性:错误:实体和 Pojo 必须有一个可用的公共构造函数

我正在将一个项目转换为 Kotlin 并且我正在尝试将我的模型(这也是我的实体)变成一个数据类我打算使用 Moshi 来转换来自 API 的 JSON 响应 @Entity(tableName = "movies")数据类 MovieKt(@首要的关键变量 id : Int,var 标题:字符串,变量概述:字符串,varposter_path:字符串,var background_path:字符 ..
发布时间:2021-11-27 13:47:13 移动开发