aredPerferences 简单介绍

  • 用于保存简单的键值对数据;
  • 它将数据放在 /data/data/<package name>/shared_prefs目录下,用xml文件保存MAP键值对;

SharedPerferences 使用步骤

将数据存储到SharedPerferences中:

  1.先要得到SharedPerference对象:(三种方法)

      1).使用Context类中的 getSharedPreferences() 方法,它接收两个参数,第一个参数为文件名称,第二个参数为操作模式。

       操作模式MODE_PRAVITE :只有当前程序才能对这个文件进行读写。MODE_MULTI_PROCESS :多个进程中对同一个文件进行读写。

       如:

SharedPreferences spf = getSharedPreferences("data",Context.MODE_PRIVATE);

      2).使用Activity类中的 getPreferences() 方法,它只接收一个参数--操作模式,并且会将当前活动的类名作为文件名。

       如:

SharedPreferences spf = getPreferences(MODE_PRIVATE);

      3).使用PreferenceManager类中的 getDefaultSharedPreferences() 方法,它接收一个Context参数,并且用包名作为前缀来命名文件。

       如:

SharedPreferences spf = PreferenceManager.getDefaultSharedPreferences(this);

  2.再得到SharedPreferences.Editor对象:

      使用SharedPreferences对象的 edit() 方法。

SharedPreference.Editor editor = spf.edit();

  3.开始添加数据:

      以键值对的方式写入数据。

editor.putInt("age",22);
editor.putString("name","Visen");
editor.putBoolean("singleDog",false)

  4.提交操作:

editor.commit();

从SharedPerferences中读取数据:

  

简单的保存密码功能

login.xml 登录布局页面

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/black"android:stretchColumns="1"><LinearLayoutandroid:layout_height="wrap_content" android:background="@color/black" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="240dp" android:src="@drawable/image1"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title" android:textSize="40sp" android:textColor="@color/red" android:gravity="center" android:background="@color/cyan"/> </LinearLayout> <TableRow android:layout_marginTop="30dp"> <TextView android:layout_height="wrap_content" android:text="@string/account" android:textSize="30sp" android:textColor="@color/white"/> <EditText android:id="@+id/account" android:layout_height="wrap_content" android:inputType="text" android:textSize="20sp" android:textColor="@color/red" android:gravity="center" android:singleLine="true"/> </TableRow> <TableRow> <TextView android:layout_height="wrap_content" android:text="@string/password" android:textSize="30sp" android:textColor="@color/white"/> <EditText android:id="@+id/passWord" android:layout_height="wrap_content" android:inputType="textPassword" android:textSize="20sp" android:textColor="@color/red" android:gravity="center" /> </TableRow> <TableLayout android:layout_height="wrap_content" android:stretchColumns="0"> <TableRow> <CheckBox android:id="@+id/saveSelect" android:background="@color/red" android:layout_gravity="end"/> <TextView android:layout_height="wrap_content" android:text="@string/saveSelect" android:textSize="20sp" android:textColor="@color/white" android:gravity="center" android:layout_gravity="bottom"/> </TableRow> <TableRow> <Button android:layout_height="wrap_content" android:id="@+id/login" android:gravity="center" android:layout_span="2" android:text="@string/login" android:textSize="25sp" android:textColor="@color/red" android:background="@drawable/black_bt"/> </TableRow> </TableLayout> </TableLayout>

Login.java

public class Login extends AppCompatActivity {private SharedPreferences spf; private SharedPreferences.Editor spfe; private int num = 0; private EditText account = null; private EditText passWord = null; private CheckBox saveSelect = null; private Button login = null ; @Override protected void onCreate(Bundle saveInstanceState){ //加载布局 super.onCreate(saveInstanceState); setContentView(R.layout.login); //初始化控件 account = (EditText)findViewById(R.id.account); passWord = (EditText)findViewById(R.id.passWord); saveSelect = (CheckBox)findViewById(R.id.saveSelect); login = (Button)findViewById(R.id.login); //使用Context的getSharedPreferences(String name,int mode)方法得到SharedPreferences对象; spf = getSharedPreferences("data", Context.MODE_PRIVATE); //使用SharedPreferences对象的edit()方法得到 SharedPreferences.Editor 的对象; spfe = spf.edit(); //复选框是否被选中,若为选中状态,则保存过账户,要恢复数据 if(spf.getBoolean("isSelect",false)){//选中标志,默认值为false String acc = spf.getString("account",""); String pas = spf.getString("passWord",""); account.setText(acc); passWord.setText(pas); saveSelect.setChecked(true); } //设置登录按钮监听事件 login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //确认帐号密码 if(account.getText().toString().equals("visen") && passWord.getText().toString().equals("dsy402645063!")){ //复选框是否被勾选,若被勾选,则需要保存账户后登录;否则直接登录且不保存账户 if(saveSelect.isChecked()){ saveDate(); }else { spfe.clear(); spfe.commit(); } //页面跳转 Intent intent = new Intent(Login.this,MainActivity.class); startActivity(intent); finish(); }else {//账户或密码错误 Toast.makeText(Login.this, "account or password is invalid", Toast.LENGTH_SHORT).show(); } } }); } public void saveDate(){ //读取EditText中的内容 String acc = account.getText().toString(); String pas = passWord.getText().toString(); //保存数据 spfe.putString("account",acc); spfe.putString("passWord",pas); spfe.putBoolean("isSelect",true); //提交  spfe.commit(); } @Override public void onBackPressed(){ num++; if(num == 2){ super.onBackPressed(); }else{ Toast.makeText(Login.this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); } } }

这其中提供了一系列的get方法进行数据的读取。如:

String name = editor.getString("name"," ");

  如果键所对应的值不存在,则填入设定的默认值。

转载于:https://www.cnblogs.com/zztve/p/5589737.html

SharedPreferences实现记住密码功能相关推荐

  1. AppCan用cookie实现记住密码功能 [APP]

    今天想做个在应用上记住密码的功能.想了一下,先用COOKIE来测试.COOKIE保存在客户端. 关于COOKIE在手机上安不安全的问题,以后再讨论. 其实想过在手机上创建文件保存密码,但是,没有时间, ...

  2. vue 登录页面记住密码功能

    vue+iview/element 一般用来快速搭建后台管理系统,登录页的记住密码功能也是必不可少的. 记住密码快速登录功能(iview ui): 思路:首次登录,记住密码,将密码存储到cookie中 ...

  3. LayUI记住密码功能(已实现)

    文章目录 前言 一.效果与逻辑 二.使用步骤 1.html 2.js 三.总结 四.补充 前言 为了提高客户用户体验,每一个管理系统都有自己的记住密码功能.让客户减少账号与密码的输入,从而提高客户的体 ...

  4. PHP会员登录实现记住密码功能 thinkPHP5

    会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别 Cookie Cookie是完全保存在客户端.当客户端禁止cookie时将 ...

  5. 【html实现记住账号、记住密码功能】

    html实现记住账号.记住密码功能 效果图: 1.页面添加记住账号.记住密码多选框 <div class="remember" style="text-align: ...

  6. vue考试系统后台管理项目-登录、记住密码功能

    考试系统后台管理项目介绍: 技术选型:Vue2.0+Elemenu-ui 项目功能介绍: 账户信息模块:菜单权限.角色权限设置.角色权限分配.账号设置.公司分组 考试管理模块:新增/编辑/删除考试试题 ...

  7. java记住密码 cookie_Java Web网站怎么利用Cookie实现记住密码功能

    在做java web网站开发时,为了避免每次登录都需要输入用户名和密码,我们会使用Cookie技术来实现记住密码功能,在这里小编使用简单的项目案例来教大家具体的实现过程. 前期准备 1.下载好jque ...

  8. PyQt5实现登录界面,包含用户注册,记住密码功能

    本文主要基于PyQt5用的是qt designer,连接MySQL实现登录界面,包含注册功能,记住密码功能,说明这一切都是基于在pycharm上配置好了pyuic和qt designer 目录 1.实 ...

  9. php记住密码怎么写,PHP记住密码功能实现例子

    记住密码功能我们在许多网站登录时都会看到有这个功能了,下面我们来看一篇基于php的记住密码功能的实现方法,具体的例子如下所示. 提供两个内置的方法,可以在项目中直接使用,很方便/** * 记住密码/清 ...

最新文章

  1. 20172329 2017-2018-2 《程序设计与数据结构》实验五报告
  2. Object-c学习之路二(oc内存管理黄金法则1)
  3. 爱创课堂每日一题101天-哪些操作会造成内存泄漏?
  4. .NET 之路 | 007 详解 .NET 程序集
  5. yolo opencv_如何使用Yolo,SORT和Opencv跟踪足球运动员。
  6. android mysql 数据库文件_android mysql数据库文件
  7. 第 19 次 CCF CSP 认证 202006-2 稀疏向量(svector)
  8. SPA(单页面应用)和MPA(多页面应用)
  9. 凸透镜成像实验软件_凸透镜成像6道例题(含详答)
  10. 图像全参考客观评价算法比较
  11. 日志分析软件 Splunk
  12. Python中scipy库的pearsonr(x, y)的使用
  13. html5做九九乘法表,利用JavaScript制作九九乘法表实例教程
  14. Spark源码系列(二)RDD详解 - 岑玉海
  15. 汇编语言,两个数字的想加_8085微处理器中的汇编语言程序将两个16位数字相乘...
  16. 【笔记】个人博客建立(域名选择、网站备案、公安联网备案、安全评估报告)
  17. mysql gh ost 对比_GitHub开源MySQL Online DDL工具gh-ost参数解析
  18. poll?transport=longpollconnection...烦人的请求
  19. P1244 [NOI2000] 青蛙过河(普及-)
  20. 【微信公众号开发】【6】图文消息加强

热门文章

  1. 计算机维修工中级实践考试,计算机维修工(中级)技能考核.doc
  2. Java中input与output_java中的Io(input与output)操作总结(四)
  3. 距离算法在概率统计C语言,基于CBM-TOF探测器无触发数据获取系统的压缩算法-应用概率统计.PDF...
  4. 解决Eclipse Debug 的source not found问题
  5. 一休和尚 小布偶 晴天娃娃
  6. openstack系列文章(二)
  7. JDK版本不匹配...
  8. Linux 各文件系统配置
  9. 如何使用ActionScript来检测用户的操作系统种类及浏览器类型
  10. js 字符串操作函数有哪些