您的位置:首页 > 产品设计 > UI/UE

Android数据保存之一——保存Key-Values对

2013-01-06 07:44 183 查看
可以用SharedPreferences API存储键值对,并且提供了简单的访问方法,还可以控制SharedPreferences文件的访问权限。

下面介绍SharedPreferences API的使用方法。

得到一个SharedPreferences对象

用以下方法得到或创建一个SharedPreferences文件对象

getSharedPreferences()
— Use this if you need multiple shared preference files identified by name, which you specify with the first parameter. You can call this from any
Context
in your app.
getPreferences()
— Use this from an
Activity
if you need to use only one shared preference file for the activity. Because this retrieves a default shared preference file that belongs to the activity, you don't need to supply a
name.

例如,下面代码在一个Fragment中执行,得到一个由R.string.preference_file_key资源标志的SharedPreferences文件,并用private模式打开,表示只能在你自己的app中访问这个文件

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);


命名SharedPreference文件时最好用app范围内唯一的名字,像com.example.myapp.PREFERENCE_FILE_KEY

另外,getPreferences()可以得到一个仅属于当前activity的SharedPreference文件

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);


如果以MODE_WORLD_READABLE 或者 MODE_WORLD_WRITEABLE打开,那么其他的app也可以访问数据

写入 Shared Preferences文件

要写入,先通过edit()创建一个
SharedPreferences.Editor对象


通过
putInt()
putString()
等方法放入数据,调用
commit()
保存改变,例如

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

从 Shared Preferences文件读取

要从文件中读取数据,可以调用
getInt()
getString()等方法,例如:


SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);long defaultVal = getResources().getInteger(R.string.saved_high_score_default));
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultVal);


第二个参数表示如果提供的键不存在时采用的默认值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: