SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs/目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
实现SharedPreferences存储的步骤如下:
1)根据Context获取SharedPreferences对象。
2)利用edit()方法获取Editor对象。
3)通过Editor对象存储key-value键值对数据。
4)通过commit()方法提交数据。
publicclass MainActivity extends Activity {
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据Context获取SharedPreferences对象
Contextctx = MainActivity.this;
SharedPreferencessp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入数据
Editoreditor = sp.edit();
editor.putString("STRING_KEY","string");
editor.putInt("INT_KEY",0);
editor.putBoolean("BOOLEAN_KEY",true);
editor.commit();
//返回STRING_KEY的值
Log.d("SP",sp.getString("STRING_KEY","none"));
//如果NOT_EXIST不存在,则返回值为"none"
Log.d("SP",sp.getString("NOT_EXIST", "none"));
}
}
这段代码执行过后,即在/data/data/com.android.test/shared_prefs/目录下生成了一个SP.xml文件。
SP.xml文件的具体内容如下:
<?xml version='1.0' encoding='utf-8'standalone='yes' ?>
<map>
<stringname="STRING_KEY">string</string>
<intname="INT_KEY" value="0"/>
<booleanname="BOOLEAN_KEY" value="true"/>
</map>
在程序代码中,通过getXXX方法,可以方便的获得对应Key的Value值。如果key值错误或者此key无对应value值,SharedPreferences提供了一个赋予
默认值的机会,以此保证程序的健壮性。在上面程序的运行过程中,因为并无值为"NOT_EXIST"的Key,所以Log打印出的是其默认值:“none”。在访问一个不存在key值这个过程中,并无任何异常抛出。