2017-06-22 131 views
1

我想将标记的位置保存为sp,所以每次打开应用程序我加载标记。android google地图位置

SharedPreferences.Editor putDouble(final SharedPreferences.Editor edit, final String key, final double value) { 
    return edit.putLong(key, Double.doubleToRawLongBits(value)); 
} 

double getDouble(final SharedPreferences prefs, final String key, final double defaultValue) { 
    return Double.longBitsToDouble(prefs.getLong(key, Double.doubleToLongBits(defaultValue))); 
} 

从getter返回的值是从我的位置不同势远像200公里

回答

1

getDouble方法中,你需要使用Double.longBitsToDouble将其转换回双,我相信。

double getDouble(final SharedPreferences prefs, final String key, final double defaultValue) { 
     return Double.longBitsToDouble(prefs.getLong(key, 
         Double. longBitsToDouble(defaultValue))); 
} 
+0

你能给我例子 –

+0

'双getDouble(最终SharedPreferences首选项,最终String键,最后双默认值){ 回报Double.longBitsToDouble(prefs.getLong(按键,双。longBitsToDouble(默认值))); }' – sofakingforever

0

Double.longBitsToDouble()意愿返回对应于一个给定的比特表示的双精度值。 所以你试试这个

double getDouble(final SharedPreferences prefs, final String key, final double defaultValue) 
{ 
return Double.longBitsToDouble(prefs.getLong(key, Double.longBitsToDouble(defaultValue))); 
} 
+0

@Sanoop检查更新答它会回答你的问题我的朋友 –