保存数据 之 键值对的设置
2013-03-20 11:14
387 查看
如果有一些小数据的键值对需要保存,可以用
来保存信息。想了解更多请阅读:
你可以创建一个新 的SharePreferences 文件或者是获取一个已经存在,我们可以使用下面的方法:
来获取它。
当命名共享的preference文件的时候,你需要使用一个在你的APP里面唯一的字符串标示,就像"com.example.myapp.PREFERENCE_FILE_KEY"
另外,如果仅仅是针对一个activity需要共享的preference文件的时候,可以使用
警告:如果创建shared preferences文件的时候使用了
要往shared preferences里面写数据,需要调用SharedPreferences 的
从Shared Preferences里面读取数据
从一个shared preferences里面读取数据,可以调用
SharedPreferences这个类里面的API。
SharedPreferences 对象指向一个包含键值对的文件,并且提供了一些读取和写入键值对的方法。SharedPreferences 是被framework层管理的,可以是私有的,也可以被共享。
注意:SharePreferences 仅仅是操作键值对,不可以和SharePreferencesPreference混淆,[code]Preference会创建一个设置界面,尽管它里面还是用
来保存信息。想了解更多请阅读:
Preference 和Settings。
处理SharedPreferences
你可以创建一个新 的SharePreferences 文件或者是获取一个已经存在,我们可以使用下面的方法:
getSharedPreferences()利用这个方法可以通过名称来获取到一个可以共享的preference 文件,名称在第一个参数里面指定,可以用你的activity里面的任何一个Contextd对象
来获取它。
getPreferences() 这个方法获取的到时针对这个activity的共享preference 文件。因为这个文件仅仅是针对这个activity的,所有不需要提供一个名称。
比方说,下面的这个代码是在一个Fragment里面执行的,获取了一个由字符串资源里面的R.string.preference_file_key命名的preference 文件,设置wie私有模式,这样这个文件就仅仅可以被你的APP访问。
[code]Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
当命名共享的preference文件的时候,你需要使用一个在你的APP里面唯一的字符串标示,就像"com.example.myapp.PREFERENCE_FILE_KEY"
另外,如果仅仅是针对一个activity需要共享的preference文件的时候,可以使用
getPreferences()方法。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
警告:如果创建shared preferences文件的时候使用了
MODE_WORLD_READABLEor
MODE_WORLD_WRITEABLE属性,任何其他的app如果知道你的这个文件的名称,都可以访问你的数据。
写数据到Shared Preferences
要往shared preferences里面写数据,需要调用SharedPreferences 的
edit()获取一个SharedPreferences.Editor对象。然后用这个Editor里面的方法来写入数据,列入putInt()和[code]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里面读取数据
从一个shared preferences里面读取数据,可以调用
getInt()和
getString()这类方法,如果对应的键值对存在,会获取到对应的键值对的值,否则,会返回一个默认数值。这个数值可以自己指定。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
相关文章推荐
- 数据存储之保存键值设置
- word 文档的保存数据及读取,类似图片,数据库设置图片格式(image)
- Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
- 在arcgis中若想保存一个数据的符号设置不变应该怎么做?
- 偏好设置保存数据
- Hibernate+Mysql在向数据库中保存 / 更新数据时设置编码格式
- Android app系统设置界面 数据的保存与读取 SharedPreferences 的正确使用
- Android fragment 横竖屏的动态布局实现(不需要保存数据)动态的给控件设置权重
- android之保存偏好设置信息到shareSharedPreferences,轻量级的保存数据的方法
- android保存键值对数据
- Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
- PB datawindow 数据窗口字段保存显示超过255个字符,要如何设置?
- 使用NSUserDefaults对iSO应用保存设置数据和缓存对象
- MYSQL5.1集群对数据保存到磁盘的设置
- android stdio 设置屏幕旋转后保存数据
- 21.13-21.17 redis常用操作,数据类型,操作键值,安全设置
- 获取设置数据和保存设置的代码
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
- 安卓训练-开始-保存数据-保存键值对集合
- 设置、数值-【Cocos2D-X 】初窥门径(11)CCUserDefault:保存数据-by小雨