【慢慢学Android】:2.SharedPreferences对数据的存储
2012-05-25 16:19
423 查看
[b] SharedPreferences简介: [/b]
SharedPreferences是Android平台上一个轻量级的存储类,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息,比如窗口状态,一些小型自定义数据等。其存储位置在/data/data/<包名>/shared_prefs目录下,可以通过DDMS--FileExplorer下查看(选中文件点击DDMS右上角的导出文件)。
[b] 数据的存储: [/b]
1.构造函数:
如示例,一般常用的构造函数为2个参数
第一个为sp的名称,第二个一般为权限比如Activity.MODE_PRIVATE, MODE_APPEND, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE
2.数据的存储以及修改:
使用SharedPreferences.Editor类来构造一个编辑器进行存储数据
删除数据
3.一些常用的方法:
[b] 数据的读取: [/b]
使用getAll()读取所有数据存储在一个HashMap中:
还是挺好用的哈~~
SharedPreferences是Android平台上一个轻量级的存储类,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息,比如窗口状态,一些小型自定义数据等。其存储位置在/data/data/<包名>/shared_prefs目录下,可以通过DDMS--FileExplorer下查看(选中文件点击DDMS右上角的导出文件)。
[b] 数据的存储: [/b]
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"; @Override protected void onCreate(Bundle state){ super.onCreate(state); . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); }
2.数据的存储以及修改:
使用SharedPreferences.Editor类来构造一个编辑器进行存储数据
add.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String 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 SharedPreferencesobject 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 SharedPreferencesobject 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. |
listview = (ListView) findViewById(R.id.lv); SharedPreferences Addresses = getSharedPreferences(PREFS_NAME, 0); listItems = (HashMap<String, Object>) Addresses.getAll();
还是挺好用的哈~~
相关文章推荐
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- android 数据存储SharedPreferences 学习笔记
- Android - 采用 SharedPreferences 存储数据
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- Android SharedPreference 数据存储
- 【Android】SharedPreference存储数据
- Android:数据存储之SharedPreference & 文件
- Shared preferences - Android 数据存储
- Android之SharedPreference轻量级数据存储
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- Android SharedPreferences 永久存储简单的数据
- Android存储数据的方法:SharedPreference、File I/O、SQLite与ContentProvider分析
- sharedPreference存储对象-数据库存储对象;android 将map保存到sqlite数据库中,从表数据中取回map
- android SharedPreferences 数据存储
- android sharedpreferences StringSet不能真正存储数据的问题
- android笔记20-数据存储之sharedPreference
- Android用SharedPreference存储数据
- Android与IOS异同点对比 ( 2 ) ------ 数据存储(SharedPreferences VS NSUserDefaults)
- Android 数据存储:五大存储之SharedPreference
- (转)【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!