登录实现记住密码

记住密码这个功能在很多的应用程序中都能见到,用得非常的平凡,也提供了很多的方便,但是个人认为,如果我们的应用程序涉及到数据安全度高的时候,这个功能就有安全隐患了,如银行的手机客户端,如果设置一个记住密码,万一不小心手机掉了,被别人捡到,就如同进入自家一样容易,那损失不可说了,心照不宣就行,呵呵!这些说的都是废话,下面具体来操作是怎样实现这一功能:
1、创建一个Android工程

2、在xml文件中将界面布局好,风格随意

3、编写代码实现,我这里使用的Android提供的SharedReference这个API

这个是我的界面,有点丑,做练习嘛,将就将就用

我将保存密码提取出来封装到一个Java类中的,LoginService.java

public class LoginService {
	public static void saveUserInfo(Context context,String userName,String password){
		//获取SharedReference
		SharedPreferences sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);
		//获取SharedReference的编辑器
		Editor editor=sp.edit();
		//设置参数
		editor.putString("userName", userName);
		editor.putString("password", password);
		//提交数据,相同与数据库的事务,保证数据存储成功
		editor.commit();
	}
}	

在MainActivity.java 中

package com.tenghu.login.activity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	// 声明控件对象
	private EditText userName, password;
	private CheckBox checkBox;
	private Button login;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 获取控件对象
		userName = (EditText) this.findViewById(R.id.username);
		password = (EditText) this.findViewById(R.id.password);
		checkBox = (CheckBox) this.findViewById(R.id.check_box);
		login = (Button) this.findViewById(R.id.login);
		// 获取SharedReference接口对象
		SharedPreferences sp = this.getSharedPreferences("config",
				Context.MODE_PRIVATE);
		// 获取用户名和密码
		String name = sp.getString("userName", "");
		String pwd = sp.getString("password", "");
		// 设置到文本框中
		userName.setText(name);
		password.setText(pwd);
		// 如果获取到的值不为空
		if (TextUtils.isEmpty(pwd) == false && TextUtils.isEmpty(pwd) == false) {
			// 如果获取到的值等于预定的值,则提示登录成功,否则登录失败
			if ("admin".equals(name) && "admin".equals(pwd)) {
				Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
			} else {
				Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
			}
		}
		// 为按钮绑定点击事件
		login.setOnClickListener(new ClickListener());
	}

	/**
	 * 声明点击事件
	 */
	final class ClickListener implements OnClickListener {
		@Override
		public void onClick(View v) {
			// 获取用户名和密码
			String name = userName.getText().toString();
			String pwd = password.getText().toString();
			if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) {
				Toast.makeText(MainActivity.this, "用户名或密码不能为空",
						Toast.LENGTH_SHORT).show();
			} else {
				if (checkBox.isChecked()) {
					Toast.makeText(MainActivity.this, "保存密码成功",
							Toast.LENGTH_SHORT).show();
					LoginService.saveUserInfo(MainActivity.this, name, pwd);
				}
				if ("admin".equals(name) && "admin".equals(pwd)) {
					Toast.makeText(MainActivity.this, "登录成功",
							Toast.LENGTH_SHORT).show();
				} else {
					Toast.makeText(MainActivity.this, "登录失败",
							Toast.LENGTH_SHORT).show();
				}

			}
		}
	}
}


这样就实现了记住密码的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值