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. review10

    public int indexOf(String s); 字符串的索引位置时从0开始的(只有一个参数时),从当前字符串的头开始检索字符串s,并返回首次出现s的索引位置.如果没有检测到字符串s,该方法 ...

  2. css开发素材网址

    1.border-collapse 为表格设置合并边框模型 2.border-spacing border-spacing 属性设置相邻单元格的边框间的距离 backface-visibility:h ...

  3. Microsoft MVC3 框架

             1. 安装MVC3框架 官网:http://www.asp.net/mvc 下载:ASP.NET MVC3 with Tools http://go.microsoft.com/fw ...

  4. 用createinstallmedia创建可恢复的OSX安装DMG

    准备 从App Store下载OS X安装程序,下载完成,会在应用程序目录 /Applications 下找到类似 Install OS X 10.xxxxxx.app(中文名如:安装 OS X 10 ...

  5. c#线程中下载文件到本地

    额,太懒了 直接上示例代码... /// <summary> /// 下载文件到本地 2017-05-31 /// </summary> /// <param name= ...

  6. Linux内核主要由哪几部分组成?每部分的作用?

    . Linux内核主要由哪几部分组成?每部分的作用? 参考答案:  Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信.  进程调度(SCHED):控制进程对C ...

  7. ubuntu16.04下安装配置深度学习环境(Ubuntu 16.04/16.10+ cuda7.5/8+cudnn4/5+caffe)

    主要参照以下两篇博文:http://blog.csdn.net/g0m3e/article/details/51420565   http://blog.csdn.net/xuzhongxiong/a ...

  8. 使用visio 2010建立sql server数据模型——手动画、利用逆向工程

    基础数据库这个词不在新鲜,老早就提出了.咱们从出生,个人信息就被放到一个基本信息库中了,在全国各地,通过身份证号就能知道你的基本信息.最近米老师 下发了一个任务,让我们开发几个小项目,考试系统.选修课 ...

  9. 1110. Complete Binary Tree (25)

    Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each in ...

  10. TP中讲的两种ajax方法

    一. 控制器中public function add(){ $this->display(); } public function ajaxSave(){ if(IS_AJAX){ echo ' ...