在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实现记住密码的操作的更多相关文章

  1. Android数据存储方式--SharedPreferences

    Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...

  2. Android 数据存储之 SharedPreferences储存

    ------------------------------------------SharedPreferences存储--------------------------------------- ...

  3. Android数据存储三剑客——SharedPreferences、File、SQLite

    Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...

  4. Android数据存储之SharedPreferences使用

    SharedPreferences是Android中一种轻型的数据存储类.本质上是基于XML文件进行存储Key-Value键值对的数据,生成的XML文件的目录在/data/data/包名/Shared ...

  5. Android数据存储之SharedPreferences存储

    安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...

  6. android数据存储之SharedPreferences

    一.SharedPreferences简介      (1)SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activ ...

  7. Android数据存储之SharedPreferences及如何安全存储

    前言: 最近一直在学习ios的数据存储,当学习到NSUserDefaults的时候让我回想起了SharedPreferences,今天闲来无事,想着总结一下SharedPreferences的使用. ...

  8. Android数据存储之sharedpreferences与Content Provider

    android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ...

  9. Android数据存储:Shared Preferences

    Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...

随机推荐

  1. Discuz封锁蜘蛛最有效的方法

    闲来无事翻代码,发现一个好东西,Discuz设计者考虑到了有些流氓搜索引擎不遵守roborts.txt,于是设计了一个NOROBOT变量,当这个变量为true 的时候,定义中的搜索引擎都会无法访问,默 ...

  2. velocity模板引擎学习(1)

    velocity与freemaker.jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,(注:castle团队在gith ...

  3. HDU1281-棋盘游戏-二分图匹配

    先跑一个二分图匹配,然后一一删去匹配上的边,看能不能达到最大匹配数,不能这条边就是重要边 /*----------------------------------------------------- ...

  4. Java 生成 UUID

    1.UUID 简介 UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Found ...

  5. JSP 和 ASP.NET 谁能主宰未来【转】

    随着计算机行业的发展,以后到底谁才是 web 网站开发的主宰者呢? 1. 说说JSP.(本人工作中用的最多的就是JSP) JSP. JavaServer Pages 是Java技术的一部分,可以说是J ...

  6. 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库

    一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...

  7. ASP.NET Web API 实现客户端Basic(基本)认证 之简单实现

    优点是逻辑简单明了.设置简单. 缺点显而易见,即使是BASE64后也是可见的明文,很容易被破解.非法利用,使用HTTPS是一个解决方案. 还有就是HTTP是无状态的,同一客户端每次都需要验证. 实现: ...

  8. dinic模板

    procedure addedge(u,v,cap:longint); begin sid[tot].u:=u; sid[tot].v:=v; sid[tot].cap:=cap; sid[tot]. ...

  9. Android Material Design 控件常用的属性

    android:fitsSystemWindows="true" 是一个boolean值的内部属性,让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为t ...

  10. 三大范式与BCNF

    引用:http://www.cnblogs.com/ybwang/archive/2010/06/04/1751279.html 参考: 1.范式间的区别 http://www.cnblogs.com ...