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接口来实现记住密码功能的更多相关文章

  1. 通过sharedpreferences实现记住密码功能

    通过sharedpreferences实现记住密码功能

  2. android: SharedPreferences实现记住密码功能

    既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项 ...

  3. java实现记住密码功能(利用cookie)

    <br> <input type="text" id="userName" name="userName" value=& ...

  4. jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...

  5. cookie记住密码功能

    很多门户网站都提供了记住密码功能,虽然现在的浏览器都已经提供了相应的记住密码功能 效果就是你每次进入登录页面后就不需要再进行用户名和密码的输入: 记住密码功能基本都是使用cookie来进行实现的,因此 ...

  6. 【原创】js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...

  7. vue项目实现记住密码功能

     一.谷歌浏览的残留问题 现在很多的网站都有一个需求是记住密码这个功能,为的是避免用户下次登录的时候繁琐的输入过程. 像是一些主流的浏览器(比如Chrome)都有了这个功能,而且如果你登录了Chrom ...

  8. js中记住密码功能

    js中记住密码功能(在前端实现) 直接上例子(如果你也要实现的话注意改一些变量名称,jsp代码不包含样式) Jsp代码: <form class="am-form tpl-form-l ...

  9. js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie( ...

随机推荐

  1. Android国际化-图片国际化和文本字符国际化

    注意: 1.是在res目录下面,新建文件夹 2.需要国际化的文本资源和图片资源名称是一样的 图片国际化 默认:drawable-xhdpi 中文简体:drawable-zh-rCN-xhdpi(或者不 ...

  2. Javascript-我对作用链、闭包、原型及原型链的理解

    Javascript-基础概念总结(2) 最近学习一些javascript基础知识,也解决了很多之前的疑惑,记得第一次被问及怎样理解闭包时,我的回答是:就是类似于封装吧!现在想想是有多白痴,学习技术是 ...

  3. 安装Xcode 7 beta后Xcode 6崩溃的问题

    最新解决方案:把OSX El Capitan升级到Beta 7  (15A263e),Xcode6可使用! 解决方案:http://stackoverflow.com/questions/318035 ...

  4. IE跨Iframe时Session丢失问题

    例如IIS下,可以打开IIS窗口——〉选择一个网站——〉属性——〉http头,增加一个http头 然后输入头名:P3P 输入头内容:CP=CAO PSA OUR 点评:与上一个方法类似,此方法也要求第 ...

  5. js操作获取和设置cookie

    //创建cookie function setCookie(name, value, expires, path, domain, secure) { var cookieText = encodeU ...

  6. Idea_学习_10_Idea远程debug

    一.前言 二.远程debug 1.在远程机器启动java调试模式. 需要在启动时添加如下jvm参数,来以java调试模式运行项目. java -Xdebug -Xrunjdwp:server=y,tr ...

  7. 剑指offer--13.二进制中1的个数

    就是猜测试数据没有负数,哈哈 ----------------------------------------------------------------- 时间限制:1秒 空间限制:32768K ...

  8. hdoj-1013-Digital Roots(九余数定理)

    题目链接 #include <iostream> using namespace std; int main() { string a; int b; ") { b = ; ;i ...

  9. MySQL 添加、查看字段注释

    语法: 创建表时的COMMENT内容,要查看这些内容,使用命令: show full fields from '表名称'; 查看tb_usr表字段注释: 创建新表的脚本中, 可在字段定义脚本中添加co ...

  10. 重构代码 —— 函数即变量(Replace temp with Query)

    函数即变量,这里的函数指的是返回值为某一对象的函数.Replace temp with query,query 是一种查询函数. example 1 double price() { return t ...