android数据存储中的SharedPreference学习记录

相比于文件的存储方式,SharedPreference是使用键值对的方式来存储数据的。本质为xml文件的形式存储,适合存放程序的配置信息。

SharedPreference仅支持以下数据类型:
boolean
int
float
long
String

SharedPreference的实现如下

一、获取SharedPreference对象

1、Context中的getSharedPreference()方法
getSharedPreference(“文件名”,操作模式)
指定的文件若不存在则会创建一个,文件都是存放在/data/data/shared_prefs/目录下。

主要操作模式:
MODE_PRIVATE 默认模式,表示只有当前应用程序才可以对SharedPreference进行读写。
MODE_MULTI_PROCESS 一般用于多个进程中对同一个SharedPreference进行读写。
MODE_WORLD_READABLE,MODE_WOELD_WRITEABLE模式在android4.2版本已被废弃。

2、Activity类中的getPreference()方法
getPreference(操作模式)
只接受一个参数操作模式,文件名默认为当前Activity类名。

3、PreferenceManager类中的getDefaultSharedPreference()方法
getDefaultSharedPreference(Context)
此方法为一个静态方法,接受一个Context参数,使用当前应用程序的包名为前缀来命名文件。

二、读写数据
写数据
1、通过以上3种方法获取到SharedPreference对象后,调用edit()方法得到一个SharedPreference.Editor对象。
2、调用SharedPreference.Editor对象的一系列put方法(例如putString)来存储数据。
3、最后通过commit()方法(提交成功返回true,否则返回false)来提交数据,从而完成数据的存储。
读数据
4、通过SharedPreference对象的一系列get方法(例如getBoolean)来获取数据。

简单demo如下:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取SharedPreferences对象
        SharedPreferences spf=getSharedPreferences("data", MODE_PRIVATE);

        //获取SharedPreference.Editor对象
        SharedPreferences.Editor editor=spf.edit();

        //读取数据
        boolean isMan=spf.getBoolean("isMan", false);
        int salary=spf.getInt("salary", 3000);
        String name=spf.getString("name", "Tom");

        //存储数据
        editor.putBoolean("isMan", true);
        editor.putInt("salary", 6000);
        editor.putString("name", "jack");

        //提交
        editor.commit();
    }

总结:记住3种获取SharedPreference对象的方式,各方式的文件名与操作模式。获取数据直接get,存储需要SharedPreference.Editor对象直接put,最后别忘了commit提交。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值