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

来源:互联网 发布:淘宝回收宝 编辑:程序博客网 时间:2024/05/18 02:23

相比于文件的存储方式,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
原创粉丝点击