Android中 记住密码(SharedPreferences)
来源:互联网 发布:在淘宝买摩托车可靠吗 编辑:程序博客网 时间:2024/04/30 07:32
Android中登录界面的记住密码功能实现,将用户输入的账号和密码以SharedPreferences方式存储(注意的是,密码要用MD5明文加密)。
界面xml文件:
<RelativeLayout 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" tools:context=".MainActivity" > <EditText android:id="@+id/et_qq" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入您的qq号码" /> <EditText android:inputType="textPassword" android:id="@+id/et_password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/et_qq" android:hint="请输入密码" /> <CheckBox android:id="@+id/cb_remeber_pwd" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/et_password" android:text="记住密码" /> <LinearLayout android:layout_below="@id/cb_remeber_pwd" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/bt_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" /> </LinearLayout></RelativeLayout>
MainActivity.java文件:
import android.os.Bundle;import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.text.TextUtils;import android.view.Menu;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;/*** * *1.创建一个SharedPreferences *2.初始化SharedPreferences 参数1 sp的文件名称 参数2 sp的保存模式 *3.向sp里面保存数据 首先 获取一个文本编辑器 Editor *4.存储完毕数据记得执行commint()保存数据 *5.读取数据 sp.getString() sp.getInt(); */public class MainActivity extends Activity {private EditText et_qq;private EditText et_password;private CheckBox cb_remeber_pwd;private Button bt_ok;/** * android系统下用于数据存储的一个方便的API */private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 完成sp的初始化。sp = getSharedPreferences("config", MODE_PRIVATE);et_qq = (EditText) findViewById(R.id.et_qq);et_password = (EditText) findViewById(R.id.et_password);cb_remeber_pwd = (CheckBox) findViewById(R.id.cb_remeber_pwd);//获取sp里面存储的数据String savedQQ = sp.getString("qq", "");String savedPassword = sp.getString("password", "");et_qq.setText(savedQQ);et_password.setText(savedPassword);bt_ok = (Button) findViewById(R.id.bt_ok);// 给按钮注册一个点击事件。bt_ok.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String qq = et_qq.getText().toString();String password = et_password.getText().toString();if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(password)) {Toast.makeText(getApplicationContext(),"对不起,qq号" + "或者密码不能为空", 0).show();} else {// 检查用户是否勾选了 记住密码的选项。if (cb_remeber_pwd.isChecked()) {// 说明勾选框被选中了。把用户名和密码给记录下来// 获取到一个参数文件的编辑器。Editor editor = sp.edit();editor.putString("qq", qq);editor.putString("password", MD5utils.encode(password));// 把数据给保存到sp里面editor.commit();Toast.makeText(getApplicationContext(), "用户信息已经保存", 1).show();}}}});}}
MainActivity.java调用的MD5utils.java文件:
package com.itheima.qqlogin;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import android.os.Message;public class MD5utils {/** * md5加密的工具类 * * @param password * @return */public static String encode(String password) {try {MessageDigest digest = MessageDigest.getInstance("md5");byte[] results = digest.digest(password.getBytes());StringBuilder sb = new StringBuilder();for(byte b : results){int number = b&0xff;String hex = Integer.toHexString(number);if(hex.length()==1){sb.append("0");}sb.append(hex);}return sb.toString();} catch (Exception e) {e.printStackTrace();return "";}}}
账号和密码的存储路径如下:
导出config.xml文件,可以看到用户密码的MD5明文加密前后的xml文件里的数据:
0 0
- Android中 记住密码(SharedPreferences)
- Android中SharedPreferences的使用(登陆,记住密码)
- Android中SharedPreferences存储详解(例子:记住密码)
- Android中使用SharedPreferences实现用户登录记住密码
- Android---SharedPreferences 记住用户名和密码
- android使用SharedPreferences实现记住账号密码
- 使用 SharedPreferences记住密码
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android通过SharedPreferences实现记住密码的登陆界面
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android自动登录 记住用户名密码实现 SharedPreferences
- Android-利用SharedPreferences实现记住密码和账号功能
- android用SharedPreferences实现登录时记住密码功能
- android数据存储之sharedPreferences记住密码完成跳转
- android 文件存储以及SharedPreferences存储以及模拟记住密码
- android 利用SharedPreferences做的简单记住密码+自动登陆
- Android登录界面用SharedPreferences实现记住密码功能
- Android登录界面用SharedPreferences实现记住密码功能
- iOS懒加载
- Android Intent的几种用法
- 文件编码格式
- Android App框架设计之编写基类BaseActivity
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- Android中 记住密码(SharedPreferences)
- 设计模式-Factory
- SpringMVC-14 自定义拦截器
- 【 D3.js 高级系列 — 6.0 】 值域和颜色
- 从中国经济谈当代技术人的责任与担当
- 完善 C# ListView 系列-可编辑单元格
- ubuntu 下 pem 转换成 ppk
- gitlab安装-登录-You have to confirm your account before continuing
- UITableViewCell自适应高度