前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android数据储存之SharedPreferences-记住密码案例

Android数据储存之SharedPreferences-记住密码案例

作者头像
sr
发布2019-05-23 17:53:47
9670
发布2019-05-23 17:53:47
举报
文章被收录于专栏:swag codeswag code

简介

SharedPreferences是一种轻型的数据存储方式,通过键值对的形式保存数据,存储数据是以xml文件形式存储,文件存放在/data/data//shared_prefs目录下,一般用来存储一些简单的配置信息。

SharedPreferences操作模式

  1. MODE_PRIVATE:默认的操作模式,同名文件内容会被覆盖。
  2. MODE_APPEND:则表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。

初始化SharedPreferences

Activity类中的getPreferences(mode)方法

  • mode:指定操作模式
  • 默认以当前类的类名作为前缀命名文件

Context类中的getSharedPreferences(name, mode)方法

  • 用于指定SharedPreferences文件的名称
  • 指定操作模式

PreferenceManager类中的getDefaultSharedPreferences(context)方法

  • 静态方法,使用当前应用程序的包名作为前缀命名文件 注:SharedPreferences可实现数据共享,但是无法直接在多个程序间共享,需要借助于Conttent Providers(内容分发者)

SharedPreferences存储数据

  1. SharedPreferences通过Editor进行数据的编辑处理。 Editor editor=sharedPreferences.edit();
  2. 存放数据 以Key-Value的形式储存,只适用于一些简单的数据类型
数据类型
数据类型
  1. 提交保存 //后台提交,没有返回值 editor.apply(); //编译处理,返回Boolean editor.commit(); 注:apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘,而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
  2. 移除数据
代码语言:javascript
复制
//移除数据
editor.remove(String key);
//清空数据
editor.clear();
  1. 读取数据
getData
getData

记住密码案列

记住密码~
记住密码~
代码语言:javascript
复制
//XML文件的形式储存
//设置本程序的私有访问
      sharedPreferences=getSharedPreferences("userInfo",MODE_PRIVATE);

      //获取程序中已保存的信息
      rememeber.setChecked(sharedPreferences.getBoolean("rememeber",false));
      mName.setText(sharedPreferences.getString("name",""));
      mPassWord.setText(sharedPreferences.getString("password",""));

      mLogin.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              String name=mName.getText().toString();
              String password=mPassWord.getText().toString();
              Editor editor=sharedPreferences.edit();
              if(name.equals("admin")&&password.equals("admin")){
                  //标记是否勾选记住密码
                  boolean flag=false;
                  if(rememeber.isChecked()){
                       flag=true;
                      editor.putString("name",name);
                      editor.putString("password",password);
                      editor.putBoolean("rememeber",true);
                  }
                  editor.putBoolean("rememeber",flag);
                  editor.commit();
                  startActivityForResult(new Intent(MainActivity.this,Main2Activity.class).putExtra("rememeber",flag),1);
              }

          }
      });

下载地址: 等待上传~~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SharedPreferences操作模式
  • 初始化SharedPreferences
    • Activity类中的getPreferences(mode)方法
      • Context类中的getSharedPreferences(name, mode)方法
        • PreferenceManager类中的getDefaultSharedPreferences(context)方法
        • SharedPreferences存储数据
        • 记住密码案列
        相关产品与服务
        数据保险箱
        数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档