Android数据存储之——SharedPreferences

     SharedPreferences简介  

     如果你有少量的键值对信息需要存储,应该使用SharedPreferences API,它可以存储以下数据类型的数据:booleans, floats, ints, longs, and strings。一个SharedPreferences对象指向一个包括键值对的文件并且提供简单的方法对这些数据进行读写。每一个SharedPreferences文件由Android framework进行管理并且可以设置成私有或者公有的。

      注意:SharedPreferences API只是用来读写键值对信息的,不要和Preference API搞混了。Preference API帮助你构建你的APP设置界面的用户接口,尽管也是使用SharedPreferences作为底层的实现来存储app的设置信息。后面会专门讲解Preference API的使用方法。

      有两种方法创建一个新的或者打开一个已知的SharedPreferences文件:

      1、getSharedPreferences()。如果你需要多个名字不一样的SharedPreferences文件,通过调用这个方法,传递的第一个参数即为文件的名字。然后再app的任何地方,就可以通过context(一般使用getApplicationContext()获取全局的Context)来调用这个函数。

     2、getPreference()。这个方法会返回属于当前Activity的默认的Preference文件,所以没必要指定名字,这个文件是Activity私有的,不是全局共享的。

     下面的代码在一个Fragment里面执行。通过使用私有模式打开,这样这个文件就是对于别的APP来说是不可见的。

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

       
      一般对一个 SharedPreferences文件进行命名的时候,应该使用一个和APP相关的独特的名字,比如:com.easyliu.myapp.PREFERENCE_FILE_KEY
       
      如果对于你的Activity来说你只是需要一个 SharedPreferences文件,你应该使用getPreference(),如以下代码所示:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

      注意:如果是以MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE创建一个 SharedPreferences文件,别的知道这个文件名称的APP就可以访问这个文件。

      往SharedPreferences文件写入数据
           1、调用edit()函数获得一个SharedPreferences.Editor对象。

        2、通过调用比如putBoolean()或者putString()方法来设置值。

        3、最后通过调用commit()方法来提交新的值。

       读取SharedPreferences文件数据

     通过调用SharedPreferences的一系列方法比如getBoolean()或者getString()方法即可。

下面是示例代码:

<span style="font-size:18px;">public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}</span>

之前的博客写了一个SharedPreferences工具类:http://blog.csdn.net/liuyi1207164339/article/details/50096853


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值