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

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值