zoukankan      html  css  js  c++  java
  • Android的SharedPreferences实用技巧

    转自:http://blog.csdn.net/jingfeizhu/article/details/10017779

    SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:
    一、根据Context获取SharedPreferences对象
    二、利用edit()方法获取Editor对象。
    三、通过Editor对象存储key-value键值对数据。
    四、通过commit()方法提交数据。

     1 public class MainActivity extends Activity {
     2     @Override
     3     public void onCreate(Bundle savedInstanceState) {
     4        super.onCreate(savedInstanceState);
     5        setContentView(R.layout.main);
     6        
     7        //获取SharedPreferences对象
     8        Context ctx = MainActivity.this;       
     9        SharedPreferences sp = ctx.getSharedPreferences("pref", MODE_PRIVATE);
    10        //存入数据
    11        Editor editor = sp.edit();
    12        editor.putString("name", "jeff");
    13        editor.putInt("score", 0);
    14        editor.putBoolean("playagain", true);
    15        editor.commit();
    16        
    17     }
    18 }

    上面的例子使用起来比较麻烦,这里给出一种简单的封装方案:

     1 import java.util.Map.Entry;
     2 
     3 
     4 import android.content.ContentValues;
     5 import android.content.Context;
     6 import android.content.SharedPreferences;
     7 
     8 
     9 public class MyPreference {
    10 
    11     private static final String PREFERENCE_NAME = "my.db";
    12 
    13     private SharedPreferences mPreference;
    14 
    15     public MyPreference(Context ctx) {
    16         mPreference = ctx.getApplicationContext().getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
    17     }
    18 
    19 
    20     public boolean putStringAndCommit(String key, String value) {
    21         return mPreference.edit().putString(key, value).commit();
    22     }
    23 
    24 
    25     public boolean putIntAndCommit(String key, int value) {
    26         return mPreference.edit().putInt(key, value).commit();
    27     }
    28 
    29     public boolean putBooleanAndCommit(String key, boolean value) {
    30         return mPreference.edit().putBoolean(key, value).commit();
    31     }
    32 
    33     public boolean putIntAndCommit(ContentValues values) {
    34         SharedPreferences.Editor editor = mPreference.edit();
    35         for (Entry<String, Object> value : values.valueSet()) {
    36             editor.putString(value.getKey(), value.getValue().toString());
    37         }
    38         return editor.commit();
    39     }
    40 
    41 
    42     public String getString(String key) {
    43         return getString(key, "");
    44     }
    45 
    46     public String getString(String key, String defValue) {
    47         return mPreference.getString(key, defValue);
    48     }
    49 
    50     public int getInt(String key) {
    51         return getInt(key, -1);
    52     }
    53 
    54 
    55     public int getInt(String key, int defValue) {
    56         return mPreference.getInt(key, defValue);
    57     }
    58 
    59     public boolean getBoolean(String key) {
    60         return getBoolean(key, false);
    61     }
    62 
    63     public boolean getBoolean(String key, boolean defValue) {
    64         return mPreference.getBoolean(key, defValue);
    65     }
    66 }

    使用方式如下:

     1 public class MainActivity extends Activity {
     2     @Override
     3     public void onCreate(Bundle savedInstanceState) {
     4        super.onCreate(savedInstanceState);
     5        setContentView(R.layout.main);
     6        
     7        MyPreference pref = new MyPreference(this);
     8        pref.putStringAndCommit("name", "jeff");
     9        
    10     }
    11 }
    人生,总是有一些空城旧事,年华未央;总是有些季节,一季花凉,满地忧伤。许多事,看开了,便会峰回路转;许多梦,看淡了,便会云开日出。学会思索,学会珍藏,微笑领悟,默默坚强。
  • 相关阅读:
    期末作业验收
    SDN第五次上机作业
    个人作业——软件工程实践总结作业
    SDN第四次作业
    SDN第四次上机作业
    SDN第三次作业
    SDN第三次上机作业
    SDN第二次上机作业
    SDN第二次作业
    个人作业——软件产品案例分析
  • 原文地址:https://www.cnblogs.com/yuzhou133/p/4242307.html
Copyright © 2011-2022 走看看