我有一个双变量
Double doubleGrandTotal = 500.00;
我将它存储在SharedPreferences中,如下所示:
editor.putFloat("key_grand_total", Double.doubleToLongBits(doubleGrandTotal));
editor.commit();
但是,我不知道如何才能得到这个值:
double e1 = 0.0;
e1 = pref.getLong("key_grand_total", null);
我正在The method getLong(String, long) in the type SharedPreferences is not applicable for the arguments (String, null)
答案 0 :(得分:1)
long不能为null,你可以使用
// Adding 'nohover' class for mobile devices
if (/iPhone|iPod|iPad/i.test(global.navigator.userAgent)) { //fix for ios
$this.addClass('nohover');
} else {
var mobile = /mobile|tablet|phone|ip(ad|od)|android|silk|webos/i.test(global.navigator.userAgent);
if (mobile === true) {
$this.parent().hover(function () {
$this.addClass('nohover');
}, function () {
$this.removeClass('nohover');
});
}
}
答案 1 :(得分:1)
试
double e1 = 0.0;
e1 = pref.getFloat("key_grand_total", 0);
第二个参数是默认值,如果在pref中找不到key_grad_total
,则默认值返回到e1
答案 2 :(得分:1)
你应该将long转换为double以正确地从prefs中读取它也应该设置默认值为long,不能为null:
double e1 = 0.0;
e1 = Double.longBitsToDouble(pref.getLong("key_grand_total", 0));
答案 3 :(得分:1)
我经常做的一个更简单的解决方案是将double保存为字符串:
editor.putString("key_grand_total", String.valueOf(doubleGrandTotal));
editor.commit();
并将其检索为:
double e1 = 0.0;
e1 = Double.parseDouble(pref.getString("key_grand_total", "0"));