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对数据的存储相关推荐

  1. Android:使用SharedPreferences进行数据存储

    使用SharedPreferences进行数据存储 目录 访问SharedPreferences中的数据 案例: string.xml文件 main.xml布局文件 SpActivity 如何访问其他 ...

  2. android 之SharedPreferences,SDCard以及网络存储

    android 之数据存储分类: A.Shared Preferences:存储私有的数据以键值对的形式 B.内部存储:在设备的内存中存储私有数据 C.外部存储:在外部设备(手机SDCard等)存储共 ...

  3. 【慢慢学Android】:11.对话框大全

    转自:http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html Activities提供了一种方便管理的创建.保存.回复的对话框机制,例 ...

  4. Android开发笔记(二十九)使用SharedPreferences存取数据

    SharedPreferences使用场景 共享参数(SharedPreferences)是Android上的一个轻量级存储工具,存储结构是类似map的key-value键值对形式.它主要用于保存ap ...

  5. Android攻城狮数据存储之SharedPreferences

    Android的四种数据存储方式: 1. SharedPreferences 2. SQLite 3. Content Provider 4. File --------------------- S ...

  6. android中SharedPreferences和PreferenceActivity的存取数据

    本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法. 主要资料来源于网络,包括但不限于: <Android之PreferenceActivity ...

  7. android 清空sp数据,Android 使用 SharedPreferences 保存少量数据的实现代码

    1 SharedPreferences 介绍 SharedPreferences是使用键值对的方式来存储数据的 SharedPreferences share = getSharedPreferenc ...

  8. Carson带你学Android:关于ContentProvider的知识都在这里了!

    前言 ContentProvider属于 Android的四大组件之一 本文全面解析了 ContentProvider ,包括ContentProvider 原理.使用方法 & 实例讲解,希望 ...

  9. Android学习 —— 数据的存储与访问方式一: 文件存取

    笔记摘要: 在Android中主要提供了四种数据存储与访问的方式,文件.SharedPreference(偏好参数保存).SOLite数据库.内容提供者(Content provider)和网络, 本 ...

最新文章

  1. 1107 Social Clusters
  2. 新智能时代颠覆情报的未来
  3. 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)...
  4. HTML5文本框灰体字
  5. crontab 定时任务配置
  6. oracle expdp 多线程,Oracle expdp 过滤和并行
  7. VS查看C++类的内存分布、初步了解类的内存分布
  8. 8086CPU写汇编的规则
  9. leetcode 1178. Number of Valid Words for Each Puzzle | 1178. 猜字谜(bitmask位运算)
  10. Android学习路线总结
  11. STM32F1开发指南笔记46----字库原理及汉字库创建
  12. 达梦数据库查询表结构
  13. MapGuide Viewer
  14. 运维人员必须熟悉的运维工具汇总
  15. 网站cdn加速哪个好,10个免费网站cdn加速推荐
  16. 转载:声优 - 野上ゆかな
  17. 餐馆管理系统程序流程图_这个交付应用程序使您最喜欢的中国餐馆保持活力
  18. Variation calling and annotation
  19. 导之以行——儿子喝酸奶篇
  20. python做的游戏怎么导到微信_微信跳一跳游戏的脚本-scratch导出到微信-微信小程序是怎么做的...

热门文章

  1. 关于职业规划,如何自我实现?
  2. 现如今有一个很有意思的现象,不管是工厂还是经销商
  3. 买房就是创业,房东就是创业者
  4. 央视美女记者王冰冰身上,我看到了一个职场人特别需要的能力
  5. 一种人是成功为了赚钱,一种人是赚钱为了成功
  6. 盘点劳务公司和中介所的那些黑心套路
  7. C++低级程序设计支持规则
  8. 手机快充功能到底是充电头的功劳还是线的功劳?
  9. 把照片存QQ相册会越来越模糊,你们会把照片存在哪里?
  10. 你觉得一个人有几个手机号合适?