问题标签 [android-architecture-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 架构组件:使用枚举
是否可以通过新的 Android 架构组件和房间持久性库将 Enum 类型用作实体类中的嵌入字段?
我的实体(带有嵌入式枚举):
我的类型转换器:
当我编译这个我得到一个错误说Error:(52, 12) error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
更新 1 我的 SyncEntity 类:
android - Room Persistence @Relation 在 Java 中工作,但在 Kotlin 中不工作
基于我之前的问题(Android Persistence room: "Cannot figure out how to read this field from a cursor"),感谢反馈,我开始工作,我在 Kolin 中实现了相同的示例(参见下面的代码)。我必须进行一些小的更改,例如现在传递给查询的参数,这些参数必须作为“p0”、“p1”等传递。现在在 Kotlin 中,我收到以下与 UserWithPets 类相关的错误:
错误:无法弄清楚如何从游标中读取此字段。e: 私有 java.util.List 宠物;
看来,如果我用UserWithPets
Java 编写该类,它可以正常工作,但用 Kotlin 编写时会失败。有什么想法有什么问题吗?这是注释处理问题吗?
android - 使用 Android 架构组件 LiveData & ViewModel 时是否需要使用 onSaveInstanceState 和 onRestoreInstanceState?
Android 架构组件提供了LiveData
和ViewModel
类,这些类对生命周期更友好,专为更精简的 Activity/Fragment 而设计。这些类处理跨配置更改的数据存储,但与 Activity 框架 API 相比,我对它们的使用感到困惑。对于保持活动状态是否 仍然必要onSaveInstanceState(Bundle)
或有用?onRestoreInstanceState(Bundle)
android - 在 AndroidViewModel 中获取 FragmentManager
AndroidViewModel
用于访问Application
上下文。我试图访问Activity
'sFragmentManager
而不明确传递它:
出现错误,无法转换Context
为Activity
.
问题:有没有什么方法可以FragmentManager
在AndroidViewModel
不明确通过的情况下进入?
android - 如何处理 onResume - onPause 状态下的 LiveData 项目?
如果 LifecycleOwner 的状态为 STARTED 或 RESUMED,则认为 LifecycleOwner 处于活动状态。
但是,如果状态仅为 RESUMED,我希望它处于活动状态怎么办?例如,当用户返回屏幕时显示一些精美的动画。有没有办法只使用 LiveData 来做到这一点?
现在,我正在检查事件发生时的状态,如果状态未恢复,我将缓存它以在 onResume 方法中继续。这感觉不对。
android - 如何清除 LiveData 存储值?
根据LiveData 文档:
LiveData 类具有以下优点:
...
始终保持最新数据:如果生命周期再次启动(例如活动从后台堆栈返回到启动状态),它会接收最新的位置数据(如果还没有)。
但有时我不需要这个功能。
例如,我在 ViewModel 中有以下 LiveData,在 Activity 中有 Observer:
现在每次旋转后都会出现旧对话框。
有没有办法在处理后清除存储的值,或者它是否完全错误地使用了 LiveData?
android - 再次为片段创建 ViewModel
我在 MainFragment 中创建视图模型:
当用户选择项目然后导航到详细信息片段时,此事务将添加到后台堆栈。
当用户在详细信息片段中按回时,一切正常,但如果用户在详细信息片段中旋转设备并按回:
- 为 MainFragment 创建 ViewModel 的新实例
- 旧实例仍然存在(未调用方法 onCleared)
这是 ViewModelProviders 中的错误吗?如何解决这个问题?在我看来,应该恢复 ViewModel。
java - Android架构组件:房间:没有这样的表
我正在尝试使用新的架构组件,但是当我尝试运行时,我得到:
“错误:(375、24)错误:查询有问题:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:posts)”
以下是我的课。
**实体 : **
道:
数据库:
android - 在 LifecycleObserver 中持有 Lifecycle 对象的引用
在 LifecycleObserver 类中,保存 Lifecycle 对象的引用有多好?会出现什么并发症?