2015-10-17 75 views
-1

我想保存一个整数值并使用共享首选项使用同一个按钮检索值。 更确切地说,当我点击一个按钮时,值应该增加(i ++),然后它应该被存储。当我关闭并打开应用程序时,它应该从我离开它的位置检索相同的值。我该怎么做呢? 我正在使用eclipse。如何使用Android共享首选项存储和检索整数

回答

0

您可以使用如下的共享首选项。

//To save integer value 
SharedPreferences preference = getSharedPreferences("YOUR_PREF_NAME", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putInt("YOU_KEY",you_int_value); 
editor.commit(); 

//To retrieve integer value 
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0); 
int snowDensity = settings.getInt("YOU_KEY", 0); //0 is the default value 
+0

这是更好地使用'apply',因为它是异步获取。 – Script47

1

这对我的作品

public class OnPreferenceManager { 
private SharedPreferences.Editor editor; 
private SharedPreferences prefs; 
private String startHour = "startHour"; 
private OnPreferenceManager() {} 

private OnPreferenceManager(Context mContext) { 
    prefs = PreferenceManager.getDefaultSharedPreferences(mContext); 
    editor = prefs.edit(); 
} 

public static OnPreferenceManager getInstance(Context mContext) 
{ 
    OnPreferenceManager _app = null; 
    if (_app == null) 
     _app = new OnPreferenceManager(mContext); 
    return _app; 
} 

public void setStartHour(int hour){ 
    editor.putInt(startHour, hour); 
    editor.apply(); 

} 
public int getStartHour(){ 
    int selectionStart = prefs.getInt(startHour, -1); 
    return selectionStart; 
} 

}

当你需要设置整数只写如下

OnPreferenceManager.getInstance(this).setStartHour(theValueYouWantToStore); 

,并检索写

OnPreferenceManager.getInstance(this).getStartHour() 
0

检查这个要点https://gist.github.com/john1jan/b8cb536ca51a0b2aa1da4e81566869c4

我已经创建了一个偏好的Utils类来处理所有的情况。

其易于使用

存入偏好

PrefUtils.saveToPrefs(getActivity(), PrefKeys.USER_INCOME, income); 

从偏好

Double income = (Double) PrefUtils.getFromPrefs(getActivity(), PrefKeys.USER_INCOME, new Double(10));