安卓学习之路之数据存储方式之SharedPreferences
来源:互联网 发布:更改mac屏幕下面的图标 编辑:程序博客网 时间:2024/05/10 02:42
SharedPreferences: 通过键值对形式保存简单的,私有的数据.
存储的类型是基本数据类型,所以常用来存储应用的配置信息,用户设置的参数等数据不大的数据;
数据存储的方式是以"键值对的"形式
SharedPreferences存储的数据的路径是/data/data/应用程序的包名/shared_prefs的目录下
在这个目录下,SharedPreferences的数据是以xml文件格式存储的,所以SharedPreferences的读写就是对xml文件的解析和写入的过程.
读数据
想要用SharedPreferences读数据,首先要获得一个SharedPreferences的对象,有两种方法:
第一,直接在用上下文的对象调用getSharedPreferences();如果一个Activity需要使用多个SharedPreferences的文件,
使用这个方法,这个方法的第一个参数是SharedPreferences的文件的文件名即XML的文件名;
第二, 也是用上下文的对象调用getPreferences();如果一个Activity只是需要使用一个SharedPreferences的文件的话,可以使用这个方法,这个方法没有参数,调用这个方法后,可以在/data/data/应用程序的包名/shared_prefs的目录下找到一个和当前的Activity的类名一样的XML文件的文件名;
写数据:
写数据可以分四步
1,用getSharedPreferences();或者getPreferences()方法得到一个SharedPreferences对象.
2. 调用SharedPreferences对象的edit()方法,获得一个SharedPreferences.Editor的内部类的对象
3.调用Editor对象的putInt(),putString();等方法,第一个参数为key(键),第二个value(值)
4,使用Editor对象的commit()方法,提交修改,否则,无法写入数据
下面是一个简单的案列
简单的说明下getSharedPreferences()的两个参数
参数1:保存数据文件的名称
参数2:数据的标记
MODE_PRIVATE:数据只能被本应用程序读和写 这是是我们经常使用的
MODE_APPEND:新内容能追加到原内容之后
MODE_WORLD_READABLE:能被其他程序读 但不能写
MODE_WORLD_WRITEABLE:能被其他程序读和写
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void OnclickBtn(View v){switch (v.getId()) {case R.id.btn_save://保存数据/** * 参数1:保存数据文件的名称 * * 参数2:数据的标记 * * MODE_PRIVATE:数据只能被本应用程序读和写 * MODE_APPEND:新内容能追加到原内容之后 * MODE_WORLD_READABLE:能被其他程序读 但不能写 * MODE_WORLD_WRITEABLE:能被其他程序读和写 * * * <?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><float name="floatType" value="1.0" /><int name="intType" value="34" /><string name="stringType">你好</string><boolean name="booleanType" value="true" /><long name="longType" value="123" /></map> * * 保存的路径:data/data/程序包名/shard_prefs/参数1.xml * *///SharedPreferences preferences = getSharedPreferences("info", Context.MODE_PRIVATE);SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);//获取编辑者对象Editor editor = preferences.edit();editor.putBoolean("booleanType", true);editor.putFloat("floatType", 1.0f);editor.putInt("intType", 34);editor.putLong("longType", 123l);editor.putString("stringType", "你好");//要提交数据editor.commit();break;case R.id.btn_get://获取数据//SharedPreferences preferences2 = getSharedPreferences("info", Context.MODE_PRIVATE);SharedPreferences preferences2 = getPreferences(Context.MODE_PRIVATE);boolean b1 = preferences2.getBoolean("booleanType", false); int int1 =preferences2.getInt("intType", -1); String str = preferences2.getString("stringType", "defauls"); String str1 = preferences2.getString("stringType1", "defauls"); Log.i("==SharedPreferences==", b1+" "+int1+" "+str+" "+str1);break;default:break;}}
- 安卓学习之路之数据存储方式之SharedPreferences
- 安卓数据存储之SharedPreferences存储
- 安卓数据存储之SharedPreferences存储
- 安卓学习笔记<一>:数据存储之SharedPreferences
- 安卓数据存储之sharedpreferences
- 【安卓】数据存储之SharedPreferences
- [安卓基础]数据存储之SharedPreferences
- 安卓开发之数据存储SharedPreferences
- 安卓学习之路之数据存储外部存储
- Android数据存储方式之SharedPreferences
- android数据存储之SharedPreferences方式
- Android数据存储之SharedPreferences方式
- Android数据存储方式之SharedPreferences
- Android数据存储方式之SharedPreferences
- Android数据存储方式之SharedPreferences
- Andriod 存储数据方式 之 SharedPreferences
- Android数据存储方式之SharedPreferences
- 安卓开发之数据存储方式
- poj 2392
- 欢迎使用CSDN-markdown编辑器
- centos压缩与解压缩
- Android日志打印命令
- 设计模式之4 抽象工厂
- 安卓学习之路之数据存储方式之SharedPreferences
- 获取当前页面的完整URL方法
- JAVA实现简单四则混合运算
- m802 codec无法录音补丁
- jave类型转换
- Android 不要把android做成ios!
- 基于百度地图定位SDK实现定位
- Hibernate named query examples
- Linux写时拷贝技术(copy-on-write)