您的位置:首页 > 移动开发 > Android开发

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

2015-07-26 16:05 471 查看
相比于文件的存储方式,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提交。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息