我想在共享偏好设置中保存并获取Snow Density的静态整数值,并在用户在Single选择中选择其他值时更改。
我的代码:
public static int mSnowDensity;
AlertDialog.Builder mABuilder = new AlertDialog.Builder(AAA.this);
final CharSequence mCharSequence[] = { "Low", "Medium", "High" };
mABuilder.setTitle("Set Density of Snow");
mABuilder.setSingleChoiceItems(mCharSequence,
WallpaperServices.mDensitySnow,
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == 2) {
mSnowDensity = 90;
/*I Want to save mSnowDensity Value In Shared Preferences */
} else if (which == 1) {
mSnowDensity = 60;
} else {
mSnowDensity = 30;
}
dialog.dismiss();
}
});
答案 0 :(得分:12)
您可以按如下方式使用共享偏好
//To save
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY",mSnowDensity);
editor.commit();
//To retrieve
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0);
int snowDensity = settings.getInt("SNOW_DENSITY", 0); //0 is the default value
getSharedPreferences()是Context类的一种方法。如果您位于活动或服务(扩展上下文)中,您可以像在此片段中一样使用它。否则,您应该使用getApplicationContext()获取上下文,然后调用getSharedPreferences()方法。
有关更多选项,请参阅http://developer.android.com/guide/topics/data/data-storage.html#pref
上的文档答案 1 :(得分:1)
要保存在SharedPreferences中
private final String PREFS_NAME = "filename";
private final String KEY_DENSITY = "den";
Context ctx = getApplicationContext();
SharedPreferences sharedPreferences = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(KEY_DENSITY, mSnowDensity);
editor.commit();
获取值:
Context ctx = getApplicationContext();
String strSavedValue = null;
SharedPreferences sharedPreferences = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
strSavedValue = sharedPreferences.getInt("den", anyDefaultValue);
答案 2 :(得分:0)
保存优先值
private void SavePreferences(String key, int value) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.commit();
}
从偏好
获取值 private void showPreferences(String key){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
int savedPref = sharedPreferences.getInt(key, 0);
}
您可以将密钥用作共享首选项名称
答案 3 :(得分:0)
保存偏好不是一项令人不安的任务。但是,如果您有很多此类可配置选项,则可以使用PreferenceActivity
并覆盖onSharedPreferenceChanged
。
此处有更多详情http://developer.android.com/guide/topics/ui/settings.html
答案 4 :(得分:0)
初始化 我们需要一个编辑器来编辑和保存共享首选项中的更改。以下代码可用于获取共享的首选项。
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 :- for private mode
Editor editor = pref.edit();
存储数据
editor.putBoolean("key_name", true);
editor.putString("key_name", "string value");
editor.putInt("key_name", "int value");
editor.putFloat("key_name", "float value");
editor.putLong("key_name", "long value");
editor.commit();
检索数据
pref.getString("key_name", null); // getting String
pref.getInt("key_name", -1); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean
清除或删除数据
editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email
editor.commit(); // commit changes
editor.clear();
editor.commit(); // commit changes
答案 5 :(得分:0)
更新2018:
您可以简单地使用PowerPreference
库
https://github.com/AliEsaAssadi/Android-Power-Preference
要获取默认实例,您只需要调用
PowerPreference.defult()
或者如果您要特定的首选项文件
PowerPreference.name("YOUR_PREF_NAME")
PowerPreference.defult().put("SNOW_DENSITY",value)
PowerPreference.defult().getInt("SNOW_DENSITY")