SharedPreferences实现记住密码功能
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实现记住密码功能相关推荐
- AppCan用cookie实现记住密码功能 [APP]
今天想做个在应用上记住密码的功能.想了一下,先用COOKIE来测试.COOKIE保存在客户端. 关于COOKIE在手机上安不安全的问题,以后再讨论. 其实想过在手机上创建文件保存密码,但是,没有时间, ...
- vue 登录页面记住密码功能
vue+iview/element 一般用来快速搭建后台管理系统,登录页的记住密码功能也是必不可少的. 记住密码快速登录功能(iview ui): 思路:首次登录,记住密码,将密码存储到cookie中 ...
- LayUI记住密码功能(已实现)
文章目录 前言 一.效果与逻辑 二.使用步骤 1.html 2.js 三.总结 四.补充 前言 为了提高客户用户体验,每一个管理系统都有自己的记住密码功能.让客户减少账号与密码的输入,从而提高客户的体 ...
- PHP会员登录实现记住密码功能 thinkPHP5
会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别 Cookie Cookie是完全保存在客户端.当客户端禁止cookie时将 ...
- 【html实现记住账号、记住密码功能】
html实现记住账号.记住密码功能 效果图: 1.页面添加记住账号.记住密码多选框 <div class="remember" style="text-align: ...
- vue考试系统后台管理项目-登录、记住密码功能
考试系统后台管理项目介绍: 技术选型:Vue2.0+Elemenu-ui 项目功能介绍: 账户信息模块:菜单权限.角色权限设置.角色权限分配.账号设置.公司分组 考试管理模块:新增/编辑/删除考试试题 ...
- java记住密码 cookie_Java Web网站怎么利用Cookie实现记住密码功能
在做java web网站开发时,为了避免每次登录都需要输入用户名和密码,我们会使用Cookie技术来实现记住密码功能,在这里小编使用简单的项目案例来教大家具体的实现过程. 前期准备 1.下载好jque ...
- PyQt5实现登录界面,包含用户注册,记住密码功能
本文主要基于PyQt5用的是qt designer,连接MySQL实现登录界面,包含注册功能,记住密码功能,说明这一切都是基于在pycharm上配置好了pyuic和qt designer 目录 1.实 ...
- php记住密码怎么写,PHP记住密码功能实现例子
记住密码功能我们在许多网站登录时都会看到有这个功能了,下面我们来看一篇基于php的记住密码功能的实现方法,具体的例子如下所示. 提供两个内置的方法,可以在项目中直接使用,很方便/** * 记住密码/清 ...
最新文章
- 20172329 2017-2018-2 《程序设计与数据结构》实验五报告
- Object-c学习之路二(oc内存管理黄金法则1)
- 爱创课堂每日一题101天-哪些操作会造成内存泄漏?
- .NET 之路 | 007 详解 .NET 程序集
- yolo opencv_如何使用Yolo,SORT和Opencv跟踪足球运动员。
- android mysql 数据库文件_android mysql数据库文件
- 第 19 次 CCF CSP 认证 202006-2 稀疏向量(svector)
- SPA(单页面应用)和MPA(多页面应用)
- 凸透镜成像实验软件_凸透镜成像6道例题(含详答)
- 图像全参考客观评价算法比较
- 日志分析软件 Splunk
- Python中scipy库的pearsonr(x, y)的使用
- html5做九九乘法表,利用JavaScript制作九九乘法表实例教程
- Spark源码系列(二)RDD详解 - 岑玉海
- 汇编语言,两个数字的想加_8085微处理器中的汇编语言程序将两个16位数字相乘...
- 【笔记】个人博客建立(域名选择、网站备案、公安联网备案、安全评估报告)
- mysql gh ost 对比_GitHub开源MySQL Online DDL工具gh-ost参数解析
- poll?transport=longpollconnection...烦人的请求
- P1244 [NOI2000] 青蛙过河(普及-)
- 【微信公众号开发】【6】图文消息加强
热门文章
- 计算机维修工中级实践考试,计算机维修工(中级)技能考核.doc
- Java中input与output_java中的Io(input与output)操作总结(四)
- 距离算法在概率统计C语言,基于CBM-TOF探测器无触发数据获取系统的压缩算法-应用概率统计.PDF...
- 解决Eclipse Debug 的source not found问题
- 一休和尚 小布偶 晴天娃娃
- openstack系列文章(二)
- JDK版本不匹配...
- Linux 各文件系统配置
- 如何使用ActionScript来检测用户的操作系统种类及浏览器类型
- js 字符串操作函数有哪些