使用SharedPreferences接口来实现记住密码功能
SharedPreferences接口非常适合用来存储零散的数据。这里我们用来实现记录用户名和密码的功能。在前面我用过IO流来实现记住密码的功能。那么用SharedPreferences接口会比用IO流更加方便,代码更加简洁。也更高效。
原理:SharedPreferences接口会在xxxx路径下生成xml文件。我们根据xml文件中的key和valu来使用所存储的值。
下面我们看看运行效果

然后是布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mylogin.MainActivity" > <EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/tips" /> <EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/tips2"
android:inputType="textPassword" /> <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <CheckBox
android:id="@+id/cb_remerber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/tips3" /> <Button
android:id="@+id/bt_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:onClick="login"
android:text="@string/login" >
</Button>
</RelativeLayout> </LinearLayout>
字符串资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">mylogin</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="tips">请输入用户名</string>
<string name="tips2">请输入用户密码</string>
<string name="tips3">记住密码</string>
<string name="login">登陆</string> </resources>
java文件
package com.example.mylogin2; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast; @SuppressLint("CommitPrefEdits")
public class MainActivity extends Activity { private EditText userName, passWord;
private CheckBox box; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); userName = (EditText) findViewById(R.id.et_username);
passWord = (EditText) findViewById(R.id.et_password);
box = (CheckBox) findViewById(R.id.cb_remerber); load();
} // 点击登陆,写入账户密码的方法
@SuppressLint("ShowToast")
public void login(View v) {
String name = userName.getText().toString();
String pwd = passWord.getText().toString(); // 判断是否有勾选记住密码
if (box.isChecked()) {
/*
* getSharedPreferences(),第一个参数是生成info.xml文件,第二是是访问权限
* 生成路径/data/data/包名/share_perfs/info.xml
*/
//取得SharedPreferences对象
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
// 取得编辑器
Editor et = sp.edit();
// 传入数据,参数的意思是 (key,value)看待会生成的info.xml就明白了
et.putString("NAME", name);
et.putString("PWD", pwd);
// 提交数据
et.commit();
Toast.makeText(this, "登陆成功", 0).show(); } else {
Toast.makeText(this, "登陆成功", 0).show();
}
} // 加载账户密码的方法
public void load() {
//取得SharedPreferences对象
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
/*
* getString,参数意义表示用key=第一个参数去取值,如果取不到值,就返回第二个参数
* 因为有了第二个参数,所以我们也不需要判断是否存在info文件
* */
String nameString = sp.getString("NAME", "");
String pwdString = sp.getString("PWD", ""); userName.setText(nameString);
passWord.setText(pwdString);
} }
使用SharedPreferences接口来实现记住密码功能的更多相关文章
- 通过sharedpreferences实现记住密码功能
通过sharedpreferences实现记住密码功能
- android: SharedPreferences实现记住密码功能
既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项 ...
- java实现记住密码功能(利用cookie)
<br> <input type="text" id="userName" name="userName" value=& ...
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- cookie记住密码功能
很多门户网站都提供了记住密码功能,虽然现在的浏览器都已经提供了相应的记住密码功能 效果就是你每次进入登录页面后就不需要再进行用户名和密码的输入: 记住密码功能基本都是使用cookie来进行实现的,因此 ...
- 【原创】js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...
- vue项目实现记住密码功能
一.谷歌浏览的残留问题 现在很多的网站都有一个需求是记住密码这个功能,为的是避免用户下次登录的时候繁琐的输入过程. 像是一些主流的浏览器(比如Chrome)都有了这个功能,而且如果你登录了Chrom ...
- js中记住密码功能
js中记住密码功能(在前端实现) 直接上例子(如果你也要实现的话注意改一些变量名称,jsp代码不包含样式) Jsp代码: <form class="am-form tpl-form-l ...
- js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie( ...
随机推荐
- SVG_style_script
1. <style type="text/css"> <![CDATA[ // ZC: 禁止所有 <text/>元素的选中 text { -webki ...
- Struts2学习(1)
struts2概述 1.struts2框架应用javaee三层结构中web层框架. 2.strut2框架在struts1和webwork基础之上发展全新的框架. 3.struts2解决的问题: 4.版 ...
- dom 兼容性问题 2 offset
offsetParent : 离当前节点最近的具有定位属性的祖先节点. 如果所有祖先节点都没有定位属性: 对于一个有定位属性的元素: ie6.7 : offsetParent 是 html 节 ...
- jquery——简单的下拉列表制作及bind()方法的示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 重写ddt的mk_test_name方法
一. 测试用例名字的问题 使用ddt做测试,得到的测试报告中,测试用例的名字默认以_01, _02, _03...递增的形式结尾,这时我希望用例名能够以_api_name结尾,比如注册模块,希望看到的 ...
- [非原创] 常用加密算法整理 AES/SSL(一)
前言: 在伟大的计算机科学家研究下,发明了许多的加密算法,以下做个简答的描述: 一.分类 加密算法分为两种:单向加密.双向加密. 单向加密,不可逆的加密算法,只能加密不能解密: 双向加密,由对称性加密 ...
- count(*) 和count(1) 有区别吗
create table test1 (a varchar2(2),b varchar2(2)); insert into test1 values ('b','c'); insert into te ...
- svn上传文件钩子
svn钩子 钩子脚本就是shell的写法,钩子就是被某些版本库事件触发的程序. 常用钩子: post-commit:在提交完成成功创建之后执行该钩子.(提交已经完成,不可更改) 更新之后,通过邮件.微 ...
- hive_学习_02_hive整合hbase(失败)
一.前言 本文承接上一篇:hive_学习_01_hive环境搭建(单机) ,主要是记录 hive 整合hbase的流程 二.环境准备 1.环境准备 操作系统 : linux CentOS 6.8 jd ...
- 树莓派(Linux)与镜像源
树莓派学习笔记--修改树莓派软件源 1. linux 镜像源文件 >> vim /etc/apt/sources.list 可在树莓派官网 http://www.raspbian.org/ ...