[英]How to get multiple values from sharedPreferences on Android?
[英]How to return a double from SharedPreferences (Android)
我显然没有足够的声誉来添加评论并要求对某个主题进行澄清,因此我将不得不在此处重新添加问题。
根据链接: 不能放置两个SharedPreferences
评分最高的答案是从sharedpreferences返回双精度值的最佳方法,如下所示:
double getDouble(final SharedPreferences prefs,
final String key, final double defaultValue) {
return Double.longBitsToDouble(prefs.getLong(key, Double.doubleToLongBits(defaultValue)));
}
我在确定参数defaultValue
中遇到什么麻烦。 这个参数是否应该是一个变量(像双精度一样)与原始值相同? 这是我班上唯一的吗? 它是什么?
如果可能的话,有人介意给出一个示例,以便我可以更好地理解它吗?
谢谢!
defaultValue是在共享首选项中没有定义为“ key”的键时得到的结果,例如,如果您是第一次检索数据,而您没有为键写值,它将返回defaultValue。
double getDouble(final SharedPreferences prefs, final String key, final double defaultValue)
{ return Double.longBitsToDouble(prefs.getLong(key, Double.doubleToLongBits(defaultValue)));}
假设您已经将542.3放入myDouble
getDouble("myDouble" , 5.0); // will return 542.3
但是如果您没有在myDouble中放任何东西
getDouble("myDouble" , 5.0); // will return 5
通常的用途是跟踪数据,并且用户可以清除该数据(想象游戏中的高分),因此您不想检查它是否存在,而是使用默认值启动它。
getDouble("highscore" , 0.0); // will return highscore if exists otherwise will return 0
设置和获取首选项为字符串...。
latitude = location.getLatitude();
longitude = location.getLongitude();
//save last valid position
String mLastLatitude = latitude.toString();
myPreferences.setLastLatitude(mLastLatitude);
String mLastLongitude = longitude.toString();
myPreferences.setLastLongitude(mLastLongitude);
//get last position
lastLatitude = Double.valueOf(myPreferences.getLastLatitude());
lastLongitude = Double.valueOf(myPreferences.getLastLongitude());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.