方法getLong(String,long)在SharedPreferences类型中

时间:2015-08-18 10:13:26

标签: android sharedpreferences

我有一个双变量

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)

4 个答案:

答案 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"));
相关问题