欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

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

来源: 开发者 投稿于  被查看 25715 次 评论:171

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);  
 
 第二个参数表示如果提供的键不存在时采用的默认值。

相关文章

    暂无相关文章

用户评论