gpt4 book ai didi

android - 如何从房间数据库中的位置对象保存和检索纬度和经度

转载 作者:行者123 更新时间:2023-12-04 17:35:09 26 4
gpt4 key购买 nike

我在我的应用中将 AndroidX Room 组件用于小型离线数据库。我希望能够将用户的位置(纬度和经度)保存到数据库中,供以后使用。如何做到这一点以及最佳做法是什么?

我以前从未这样做过,在网上找不到任何帮助。

这就是我实际做的方式(显然是错误的方式):

@ColumnInfo(name = "session_location")
var sessionLocation: Location

我得到一个错误无法弄清楚如何将这个字段保存到数据库中

最佳答案

Location 类是什么?它是 android.location.Location 还是您定义的某个数据类?

在任何情况下,我都会使用 @Embedded POJO 类而不是其他人推荐的 TypeConverters

如果 Location 是您已经定义的类,那么只需在您的 sessionLocation 之上添加 @Embedded 注释

@Embedded
@ColumnInfo(name = "session_location")
var sessionLocation: Location

否则,如果 Locationandroid.location.Location,那么您不需要在该类中存储所有信息。您必须需要基本的 lat & long

我会创建一个类 Location 并存储这些基本信息并将其添加为 @Embedded。像下面这样的东西

class Location {
var latitude: Double = 0
var longitude: Double = 0
}

class User {
@Embedded
@ColumnInfo(name = "session_location")
var sessionLocation: Location
}

正如其他人所建议的那样,TypeConverter 是一种解决方案,但无需序列化/反序列化 POJO,只需直接保存即可。

关于android - 如何从房间数据库中的位置对象保存和检索纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com