记android学习之路----数据持久化之SharedPreferences

来源:互联网 发布:微信返利系统 淘宝客 编辑:程序博客网 时间:2024/06/04 18:29

SharedPreferences:

特征:

是通过将键值数据对存储在xml文件中的一种轻型数据存储方案;可存储String,Int,boolean,long,float五中数据类型;
对SharedPrefences的操作是通过Editer实例和SharedPrefences对象的;
其存储位置在/data/data/<包名>/shared_prefs目录下
一般存储一些配置信息

常用方法:

1:创建SharedPreferences实例:

1:通过Context的getSharedPreferences()创建对象;
//需要指定文件,如果指定的文件不存在则会自动创建该文件;
//可以被同一个应用下的组件共享!
SharedPrefences sp = getSharedPreferences(String name,model);

2:通过Activity的getPreferences()创建对象;
//只需要指定访问模式,该方法会自动将当前Activity的名称作为文件的名称;
//只能在当前activity中使用!
SharedPrefences sp = this.getPreferences(model);

2:对数据的存储和删除:

        Editor edi = sp.edit();        edi.putString("name_key",value);        edi.clear();        edi.remove("name_key");

3:对数据的获取:

        Map(string,value) all_value = sp.getALL():获取所有的数据        sp.getString("name_key");        boolean value = sp.contains("key_name");

4:完整操作:

1:存储数据

            Context context =Activity.this();            SharedPreferences sp = getSharedPreferences("myxml",Context.MODE_PRIVATE);            Editor editer = sp.edit();            edit.putString("name_key",value);            edit.putInt("name_key",value);            edit.putBoolean("name_key",value);            edit.commit();//提交存储

2:清除数据

            SharedPreferences sp = context.getSharedPreferences("myxml", Context.MODE_PRIVATE);            Editor editor = sharedPreferences.edit();            editor.remove("username");            editor.remove("password");            editor.commit();// 提交修改

3:获取数据:

            SharedPreferences sp = context.getSharedPreferences("myxml", Context.MODE_PRIVATE);            String username = sp.getString("username", "");            int password = sp.getInt("password", 0);

创建SharedPreferences对象时的模式:

Context.MODE_PRIVATE;  //为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容Context.MODE_MULTI_PROCESS;  //模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.Context.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABLE://用来控制其他应用是否有权限读写该文件.

实例:

创建SharedPrefences和editer实例

创建一个SharedPreferences实例:

    private void createTable(){        sp = getPreferences(Context.MODE_PRIVATE);        editor = sp.edit();        Log.i("data", "SharedPredferences obj create  success");    }

执行结果如下:
这里写图片描述


存储一条数据:

    private void insert(){        editor.putString("name","lili");        editor.putInt("age",22);        editor.commit();        Log.i("data", "insert success");    }

执行结果如下:
这里写图片描述


查询一条数据:
现在查询刚才插入的数据

   private void query() {       //获取某个数据使用getXxx();Xxx是八个基本数据类型        String name = sp.getString("name","");        int age = sp.getInt("age",0);        Log.i("data", "name is :"+name+"age is :"+age);    }

结果如下:
这里写图片描述


获取所有数据:

    private void getAllData(){        //获取所有数据返回的是个map;       Map<String,?> map = sp.getAll();        Log.i("data", "name is :"+map.get("name")+"----age is :"+map.get("age"));    }

这里写图片描述


清除一条数据:

        public void removeOneData(String key){            edit.remove(key,value);            edit.commit();        }

看下结果:
我们先删除一条数据,然后再查询所有的数据:
这里写图片描述
可以看到提示删除成功,并且打印所有数据发现,name这条数据已经不存在了;


0 0
原创粉丝点击