2017-06-22 93 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檢查更新答它會回答你的問題我的朋友 –