使用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( ...
随机推荐
- CSS之动态相册
注释还是比较详细的,所以我就不一一再说明了.--->运行效果图<--- (点击之前温馨提示一下:此picture是我自己的照片,本来不想拿出来的,后来觉得反正不会有很多人看到而且也没人认识 ...
- hzau 1205 Sequence Number(二分)
G. Sequence Number In Linear algebra, we have learned the definition of inversion number: Assuming A ...
- 详解 Android 通信
详解 Android 通信 :http://www.androidchina.net/5028.html
- 关于设置UITableView的背景图片
在UITableViewController中,要设置UITableView的背景图片,以前常用的方法是使用backgroundcolor属性,这个属性可以通过UIImage来获取,但最近发现这个方法 ...
- Javasript 内置函数
var str = 'AAAA';var aTest= new Array(); //['ff'[,'er']] \ new Array(10); \ new Array('ff','fee');va ...
- CSS 文本实例
1.设置文本的颜色 color:red; color:#00ff00 color:rgb(0,0,255) 2.增加或减少字符间距 letter-spacing:-0.5em letter-spaci ...
- 利用Fiddler或Charles进行mock数据创造测试环境
使用场景:服务器数据不符合测试条件时,我们可以通过在本地创建虚拟数据来打到测试用例所描述的条件. fiddler使用方法 1.首先在本地创建txt数据:将抓到的response中的json数据拷贝到记 ...
- linux shell 学习笔记--变量声明与赋值,循环
Bash 变量是不分类型的 ------------------------ 不像其他程序语言一样,Bash 并不对变量区分"类型".本质上,Bash 变量都是字符串. 但是依赖于 ...
- RedHat 6.8 打开vga之后Login界面花屏
/******************************************************************* * RedHat 6.8 打开vga之后Login界面花屏 * ...
- python whl包的安装
1.首先安装PIP. https://pip.pypa.io/en/latest/installing.html#install-pip python get-pip.py 2.设置好环境变量: C: ...