如何在android中的共享首选项中保存和获取整数值?

时间:2013-07-29 05:51:04

标签: android

  

我想在共享偏好设置中保存并获取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();
            }
        });

6 个答案:

答案 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")