android - java : Convert Location into String and back

标签 android location android-room typeconverter

对于 android Room,我需要一个类型转换器来保存 Location 对象。将位置转换为字符串相当简单,例如:

public static String locationStringFromLocation(final Location location) {
        if (location==null) return "Location was null";
        return Location.convert(location.getLatitude(), Location.FORMAT_DEGREES) + " " + Location.convert(location.getLongitude(), Location.FORMAT_DEGREES);
    }

但反过来似乎就不那么明显了。我可以附加所有属性并用分隔符分隔它们,但这似乎不太优雅。任何想法将不胜感激。

我当前的解决方法是仅保存纬度和经度,但我更愿意拥有该对象。

最佳答案

public static Location locationFromString(String location){
    if (location != null && (location.contains(","))) {
        Location result = new Location("Generated_location");
        String[] locationStrings = location.split(",");
        if (locationStrings.length == 2) {
            result.setLatitude(Double.parseDouble(locationStrings[0]));
            result.setLongitude((Double.parseDouble(locationStrings[1])));
            return result;
        } else { return null; }
    } else  return null;
}

关于android - java : Convert Location into String and back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752966/

相关文章:

java - 每秒在 Fragment 中执行方法 - 第二次运行时为 NULL 值

android - 在文件 flutter 中保存音频流/Uint8List 数据

android - 如何在android room数据库sql中使用replace?

android - android dao报错是怎么回事?

android - 如何在 OpenGL ES 和 Vulkan 之间传递纹理?

android - 如何找到我当前位置附近的位置?

java - 在 Android 应用程序中获取用户的位置权限

reactjs - this.props.location.state 在 React Link Router 中未定义

java.lang.NoClassDefFoundError : Failed resolution of: Landroidx/core/app/ActivityManagerCompat 错误

android - 带有支持库的自定义字体在真实设备上不起作用