Android数据保存之一——保存Key-Values对
可以用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 anyContext 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中访问这个文件
[java]
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文件
[java]
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
如果以MODE_WORLD_READABLE 或者 MODE_WORLD_WRITEABLE打开,那么其他的app也可以访问数据
写入 Shared Preferences文件
要写入,先通过edit()创建一个SharedPreferences.Editor对象
通过putInt(), putString()等方法放入数据,调用commit()保存改变,例如
[java]
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()等方法,例如:
[java]
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);
第二个参数表示如果提供的键不存在时采用的默认值。
补充:移动开发 , Android ,