【慢慢学Android】:2.SharedPreferences对数据的存储
SharedPreferences简介:
SharedPreferences是Android平台上一个轻量级的存储类,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息,比如窗口状态,一些小型自定义数据等。其存储位置在/data/data/<包名>/shared_prefs目录下,可以通过DDMS--FileExplorer下查看(选中文件点击DDMS右上角的导出文件)。
数据的存储:
1.构造函数:
如示例,一般常用的构造函数为2个参数
第一个为sp的名称,第二个一般为权限比如Activity.MODE_PRIVATE, MODE_APPEND, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE
public class Calc extends Activity {public static final String PREFS_NAME = "MyPrefsFile";@Overrideprotected void onCreate(Bundle state){super.onCreate(state);. . .// Restore preferencesSharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);boolean silent = settings.getBoolean("silentMode", false);setSilent(silent);}
2.数据的存储以及修改:
使用SharedPreferences.Editor类来构造一个编辑器进行存储数据
add.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString str_name = (String) name.getText();String str_path = (String) text.getText();SharedPreferences Addresses = getSharedPreferences(PREFS_NAME,Activity.M );SharedPreferences.Editor editor = Addresses.edit();//通过SharedPreferences.edit()来对Editor进行初始化
editor.putString(str_name,str_path);//添加数据 editor.commit(); //数据添加后必须提交才会修改xml文件 Toast.makeText(getApplicationContext(), "Successed", Toast.LENGTH_LONG).show(); } });
删除数据
public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {SharedPreferences Addresses = getSharedPreferences(PREFS_NAME,Activity.MODE_PRIVATE);SharedPreferences.Editor editor = Addresses.edit(); //通过SharedPreferences.edit()来对Editor进行初始化editor.remove((String) listview.getSelectedItem()); //删除相应的数据editor.commit(); //同样需要提交}});
3.一些常用的方法:
void apply()
Commit your preferences changes back from this Editor to the
SharedPreferences object it is editing.
|
|
SharedPreferences.Editor clear()
Mark in the editor to remove all values from the preferences.
|
|
boolean commit()
Commit your preferences changes back from this Editor to the
SharedPreferences object it is editing.
|
|
SharedPreferences.Editorput Boolean(String key, boolean value)
Set a boolean value in the preferences editor, to be written back once
commit() or apply() are called.
|
|
SharedPreferences.Editor putInt(String key, int value)
Set an int value in the preferences editor, to be written back once
commit() or apply() are called.
|
|
SharedPreferences.Editor putString(String key, String value)
Set a String value in the preferences editor, to be written back once
commit() or apply() are called.
|
|
SharedPreferences.Editor putStringSet(String key, Set<String> values)
Set a set of String values in the preferences editor, to be written back once
commit() is called.
|
|
SharedPreferences.Editor remove(String key)
Mark in the editor that a preference value should be removed, which will be done in the actual preferences once
commit() is called.
|
数据的读取:
SharedPreferences.Editor edit()
Create a new Editor for these preferences, through which you can make modifications to the data in the preferences and atomically commit those changes back to the SharedPreferences object.
|
|
Map<String, ?> getAll()
Retrieve all values from the preferences.
|
|
boolean getBoolean(String key, boolean defValue)
Retrieve a boolean value from the preferences.
|
|
String getString(String key, String defValue)
Retrieve a String value from the preferences.
|
|
Set<String> getStringSet(String key, Set<String> defValues)
Retrieve a set of String values from the preferences.
|
|
void registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)
Registers a callback to be invoked when a change happens to a preference.
|
|
void unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)
Unregisters a previous callback.
|
使用getAll()读取所有数据存储在一个HashMap中:
listview = (ListView) findViewById(R.id.lv);SharedPreferences Addresses = getSharedPreferences(PREFS_NAME, 0);listItems = (HashMap<String, Object>) Addresses.getAll();
还是挺好用的哈~~
转载于:https://www.cnblogs.com/VortexPiggy/archive/2012/05/25/2509468.html
【慢慢学Android】:2.SharedPreferences对数据的存储相关推荐
- Android:使用SharedPreferences进行数据存储
使用SharedPreferences进行数据存储 目录 访问SharedPreferences中的数据 案例: string.xml文件 main.xml布局文件 SpActivity 如何访问其他 ...
- android 之SharedPreferences,SDCard以及网络存储
android 之数据存储分类: A.Shared Preferences:存储私有的数据以键值对的形式 B.内部存储:在设备的内存中存储私有数据 C.外部存储:在外部设备(手机SDCard等)存储共 ...
- 【慢慢学Android】:11.对话框大全
转自:http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html Activities提供了一种方便管理的创建.保存.回复的对话框机制,例 ...
- Android开发笔记(二十九)使用SharedPreferences存取数据
SharedPreferences使用场景 共享参数(SharedPreferences)是Android上的一个轻量级存储工具,存储结构是类似map的key-value键值对形式.它主要用于保存ap ...
- Android攻城狮数据存储之SharedPreferences
Android的四种数据存储方式: 1. SharedPreferences 2. SQLite 3. Content Provider 4. File --------------------- S ...
- android中SharedPreferences和PreferenceActivity的存取数据
本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法. 主要资料来源于网络,包括但不限于: <Android之PreferenceActivity ...
- android 清空sp数据,Android 使用 SharedPreferences 保存少量数据的实现代码
1 SharedPreferences 介绍 SharedPreferences是使用键值对的方式来存储数据的 SharedPreferences share = getSharedPreferenc ...
- Carson带你学Android:关于ContentProvider的知识都在这里了!
前言 ContentProvider属于 Android的四大组件之一 本文全面解析了 ContentProvider ,包括ContentProvider 原理.使用方法 & 实例讲解,希望 ...
- Android学习 —— 数据的存储与访问方式一: 文件存取
笔记摘要: 在Android中主要提供了四种数据存储与访问的方式,文件.SharedPreference(偏好参数保存).SOLite数据库.内容提供者(Content provider)和网络, 本 ...
最新文章
- 1107 Social Clusters
- 新智能时代颠覆情报的未来
- 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)...
- HTML5文本框灰体字
- crontab 定时任务配置
- oracle expdp 多线程,Oracle expdp 过滤和并行
- VS查看C++类的内存分布、初步了解类的内存分布
- 8086CPU写汇编的规则
- leetcode 1178. Number of Valid Words for Each Puzzle | 1178. 猜字谜(bitmask位运算)
- Android学习路线总结
- STM32F1开发指南笔记46----字库原理及汉字库创建
- 达梦数据库查询表结构
- MapGuide Viewer
- 运维人员必须熟悉的运维工具汇总
- 网站cdn加速哪个好,10个免费网站cdn加速推荐
- 转载:声优 - 野上ゆかな
- 餐馆管理系统程序流程图_这个交付应用程序使您最喜欢的中国餐馆保持活力
- Variation calling and annotation
- 导之以行——儿子喝酸奶篇
- python做的游戏怎么导到微信_微信跳一跳游戏的脚本-scratch导出到微信-微信小程序是怎么做的...