我在手机内存中存储double时遇到了麻烦。如果这是不可能的,我还有什么选择。基本上,代码使用sharedpreferences的目的是获取"Alcohol"支出的存储值,然后将editText中的任何输入添加到它中,然后为下一次存储新值。酒类消费总额
**有人可以帮助解决这个问题,并详细说明x y & &;Z应该参与这个项目。
用户从一个旋转器中选择,这是有效的。
public void addInput(){
double dblCostInput = Double.valueOf(inputBox.getText().toString());
String strCategories= spinnerCategories.getSelectedItem().toString();
if(strCategories.equals("Alcohol"))
{
alcoholSpend = alcoholSpend + dblCostInput;
inputBox.setText("");
nextInput();
inputBox.setText("Your Spending on"+strCategories+" is: " +d.format(alcoholSpend));
}
getSharedPreferences("MY_PREFERENCE", MODE_PRIVATE).edit().putString("double", "0.28").commit();
,然后检索双精度,只需使用double . parsedouble:
Double.parseDouble(getSharedPreferences("MY_PREFERENCE", MODE_PRIVATE).getString("double", "0.28"));
试试下面的代码设置/放置&使用sharedpreferences获得double:
////////////////////////////////////Setter/////////////////////////
Editor putDouble(final Editor edit, final String key, final double value) {
return edit.putLong(key, Double.doubleToRawLongBits(value));
}
//////////////////////////////Getter//////////////////////////////
double getDouble(final SharedPreferences prefs, final String key, final double defaultValue) {
return Double.longBitsToDouble(prefs.getLong(key, Double.doubleToLongBits(defaultValue)));
}