Android中SharedPreferences的使用

Android中SharedPreferences的介绍

      安卓提供了多种存储技术,上次介绍了安卓中SQLite的存储方式,这次来说说安卓中的另一种存储方式SharedPreferences的使用。

      SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。它在存储的时候是按键值对的方式 (key-value) 把简单数据类型(boolean、int、float、long和string)存储在应用程序的私有目录下(data/data/包名 /shared_prefs/)自己定义的xml文件中。

操作模式

      SharedPreferences数据有四种操作模式,分别是:

  • Context.MODE_PRIVATE
          为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

  • Context.MODE_APPEND
          模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

  • Context.MODE_WORLD_READABLE
          表示当前文件可以被其他应用读取.

  • Context.MODE_WORLD_WRITEABLE
          表示当前文件可以被其他应用写入.

具体用法步骤

一,获取SharedPreferences方法

      1,通过方法Context.getSharedPreferences(java.lang.String, int mode),其中name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件),mode为操作模式,默认的模式为0或MODE_PRIVATE;返回值为SharedPreferences
      2,通过函数Activity.getPreferences(int mode),其中配置文件仅可以被调用的activity使用。mode为操作模式,默认的模式为0或MODE_PRIVATE;返回值为SharedPreferences。

二,使用SharedPreferences存储数据

      保存key-value对一般要指定一个文件名,然后用类似putstring的方法指定key和value。sharedpreferences也采用了同样的方法。使用sharedpreferences保存key-value对的步骤如下:
      1,使用activity类的getSharedPreferences方法获得SharedPreferences对象。其中存储key-value的文件名的名称由getSharedPreferences方法的第一个参数指定。
      2,使用SharedPreferences接口的Edit获得SharedPreferences.Editor对象。
      3,通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中xxx表示value的不同数据类型。boolean类型的value则是用putBoolean方法,字符串类型的则为putString方法。
      4, 通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。只有在事件结束后进行提交,才会将数据真正保存在数据库中。保存key-value也是一样。

代码

  • 上面说了这么多,接下来就用代码来演示一下数据的存取
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SharedPreferences pref = getSharedPreferences("myPref", MODE_PRIVATE);//私有数据模式(默认模式)
        Editor editor = pref.edit();
        editor.putString("name", "张三");
        editor.putInt("age", 30);
        editor.putLong("time", System.currentTimeMillis());
        editor.putBoolean("default", true);
        editor.commit();// 每次操作都要提交
        Log.i("Test", pref.getString("name", ""));//读取数据测试
    }
}
  • 以上代码运行之后,在本地会生成一个名为myPref.xml的文件
    打开保存的路经可以看到

  • 打开这个文件,就可以看到刚刚保存的数据

    数据都是以key-value的形式保存

读取数据

  • 读取数据非常简单,刚刚在代码里也有演示,在获得SharedPreferences对象之后直接用getXxx方法获取数据。
方法名方法作用
getAll()获取所有值
getBoolean(String key, boolean defValue)获取Boolean类型的值
getFloat(String key, float defValue)获取Float类型的值
getInt(String key, int defValue)获取Int类型的值
getLong(String key, long defValue)获取Long类型的值
getString(String key, String defValue)获取String类型的值

总结

  • SharedPreferences作为安卓平台上一个轻量级的存储类,使用起来比较容易,而且它在安卓学习开发过程中是经常用到的。本人作为安卓初学者,对SharedPreferences的研究不是很深,以上总有些忽略的地方,欢迎指正!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值