Android数据存储-通过SharedPreferences实现记住密码的操作
在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点
下面,小编将带领大家通过SharedPreferences实现记住密码的操作
一、首先:介绍下什么是SharedPreferences?
SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。


二、介绍了SharedPreferences,我们将通过记住SharedPreferences的案例讲述SharedPreferences
分析:当用户第一次登陆的时候,如果点击记住密码的操作,则将账户密码保存到xml中,如果没有点击,则不保存,或者保存空值到xml中(为了安全起见,建议进行数据存储的加密算法,常用的有MD5加密,Base64加密,小编在这不予讲述 --#)
案例:
这个案例实现的操作如上图
代码:如下图
package bzu.edu.cn.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
/**
* 这是一个用于记住密码的demo
* 知识点:SharedPreferences 存储的数据存储到xml文件中,读取的时候通过检测checkbox是否被选中,从而判断
* 是否需要从xml中进行密码的读取操作
*/
public class MainActivity extends Activity {
private EditText edt_user,edt_pass;
private CheckBox ck_save;
private Button btn_login;
private static final String PREFS_NAME="NamePWD";
private SharedPreferences sharedPreferences=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView(); // 初始化控件
setListener(); //设置监听事件
getData(); //第二次进入的时候得到数据
}
@Override
protected void onResume() {
super.onResume();
getData();
}
private void getData() {
sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
//判断之前是否存储过密码
if(sharedPreferences.getBoolean("isKeep",true)){
edt_user.setText(sharedPreferences.getString("user",""));
edt_pass.setText(sharedPreferences.getString("pass",""));
}else {
edt_user.setText("");
edt_pass.setText("");
}
}
private void setListener() {
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if("monster".equals(edt_user.getText().toString())&&"123".equals(edt_pass.getText().toString())){
if(ck_save.isChecked()){
//如果checkbook被选中
sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
SharedPreferences.Editor edit=sharedPreferences.edit();
edit.putBoolean("isKeep",true);
edit.putString("user",edt_user.getText().toString());
edit.putString("pass",edt_pass.getText().toString());
edit.commit();
}else {
sharedPreferences=getSharedPreferences(PREFS_NAME,MODE_PRIVATE);
SharedPreferences.Editor edit=sharedPreferences.edit();
edit.putBoolean("isKeep",false);
edit.putString("user","");
edit.putString("pass","");
edit.commit();
}
//跳转
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}else {
Toast.makeText(MainActivity.this,"账号或密码错误",Toast.LENGTH_SHORT).show();
}
}
});
}
private void initView() {
edt_user= (EditText) findViewById(R.id.edt_user);
edt_pass= (EditText) findViewById(R.id.edt_Pass);
ck_save= (CheckBox) findViewById(R.id.ck_save);
btn_login= (Button) findViewById(R.id.btn_login);
}
}
分析:首先声明SharedPreferences对象,然后调用edit()方法,每次使用完成后一定要commit()
----
源码托管:https://coding.net/u/monsterLin/p/SharedPreferences_Demo/git
Android数据存储-通过SharedPreferences实现记住密码的操作的更多相关文章
- Android数据存储方式--SharedPreferences
Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...
- Android 数据存储之 SharedPreferences储存
------------------------------------------SharedPreferences存储--------------------------------------- ...
- Android数据存储三剑客——SharedPreferences、File、SQLite
Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...
- Android数据存储之SharedPreferences使用
SharedPreferences是Android中一种轻型的数据存储类.本质上是基于XML文件进行存储Key-Value键值对的数据,生成的XML文件的目录在/data/data/包名/Shared ...
- Android数据存储之SharedPreferences存储
安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...
- android数据存储之SharedPreferences
一.SharedPreferences简介 (1)SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activ ...
- Android数据存储之SharedPreferences及如何安全存储
前言: 最近一直在学习ios的数据存储,当学习到NSUserDefaults的时候让我回想起了SharedPreferences,今天闲来无事,想着总结一下SharedPreferences的使用. ...
- Android数据存储之sharedpreferences与Content Provider
android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ...
- Android数据存储:Shared Preferences
Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...
随机推荐
- C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)
原文地址:http://www.cuiwenyuan.com/shanghai/post/Windows-AD-Logon-Intergrated-into-Jirigala-GPM-DotNet-B ...
- 反复请求某个URL缓存严重解决办法
有2个iframe页面A和B 点击B页面某按钮刷新A,A缓存严重. 后来发现是因为反复请求同样的URL,浏览器就在调用缓存. 解决方法是在URL后添加一个当前时间即可 var url,e=/[?]/g ...
- 数据库mark
LOAD DATA INFILE 'I:\QQpwd\\1.txt' IGNORE INTO TABLE sgk.top1 FIELDS TERMINATED BY '----' OPTIONALLY ...
- Utrack声卡和机架包的调试
视频链接http://www.tudou.com/programs/view/giZZ7b2dhn4/ 关于怎么调试这个问题困扰了我几个月之久,也没人教我,我也不知道问谁,搜又搜不到,所幸现在解决了问 ...
- JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service
随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...
- MFC下debug改成release版本出现问题及解决办法
自己在debug下成功运行了自己写的测试自己写第三方库的程序,这里有用到opencv库,所以同时用到了自己的库和opencv的库,需求因为要进行速度的测试,是想要把debug改成release版本,这 ...
- JavaScript高级程序设计笔记 事件冒泡和事件捕获
1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body> <div> click me! </div> & ...
- SELECT (Transact-SQL)
从数据库中检索行,并允许从 SQL Server 中的一个或多个表中选择一个或多个行或列. 虽然 SELECT 语句的完整语法较复杂,但其主要子句可归纳如下: [ WITH <common_t ...
- linux命令行安装使用KVM
一.说明 本篇文章介绍的是基于centos环境来安装的,ip地址192.168.4.233 二.检查CPU是否支持虚拟技术 egrep 'vmx|svm' /proc/cpuinfo 如果有输出内容表 ...
- SqlServer——全文索引
当我们想要模糊查询时,之前用like %来进行查询,但是为了提高查询速度,提出了全文索引. 全文索引是用空间换取了时间,它将每个表中的数据进行切分存储,这样就能很快的定位到模糊查询的数据. 全文索引快 ...
