Hello,大家好,我是钟阳!
今天跟大家分享一下,不带复选框的记住密码功能实现
样式呢,大概就是这个样子,很简单。
实现步骤:
-
创建一个工具类 ,还有一个登录的Activity。
-
工具类里面我们先写一个静态的布尔方法,用来存放我们获得的数据,获得数据的方法里面呢,就传入上下文Context,账号变量,String类型的,密码变量,也是String类型的,返回一个 真
//创建一个saveUser 方法用于存放数据
public static boolean saveUser(Context context, String straccountnum, String strpassword){
//获取SharedPreferences的对象,声明sp
SharedPreferences sp = context.getSharedPreferences("my_Password_2",Context.MODE_PRIVATE);
//获取编辑器
SharedPreferences.Editor edit = sp.edit();
//存入数据
edit.putString("accountnum_key",straccountnum);
edit.putString("password_key",strpassword);
//提交事务
edit.commit();
return true;
}
- 再写一个方法用来获取数据,这里用到的是Map集合,getUser方法里面呢就传入一个Context即可,因为这里不需要存放数据,就不需要获得编辑器了,直接通过sp调用getStirng方法获取数据即可,然后再初始化Map集合,最后返回一个Map集合的对象。工具类就写好了
//创建一个getUser方法用于获取数据
public static Map<String ,String> getUser (Context context){
//获取SharedPreferences的对象
SharedPreferences sp = context.getSharedPreferences("my_Password_2",Context.MODE_PRIVATE);
//通过sp的对象调用getString方法提取账号和密码,再给我们创建一个对象
String accountnum = sp.getString("accountnum_key", null);
String password = sp.getString("password_key", null);
//初始化Map
Map<String,String> userMap = new HashMap<String,String>();
userMap.put("accountnum_key",accountnum);
userMap.put("password_key",password);
//返回Map的对象
return userMap;
}
- 工具类写好之后呢,就在登录界面去调用,依然在登录按钮的点击事件中,通过工具类调用存放数据的saveUser方法,里面呢传入上下文,账号,密码三个参数,然后呢再创建一个对象。然后再判断其对象,也就是当参数都无误后,数据保存成功,就执行登录事件,提示啊,跳转之类的
//通过工具类调用存储方法,并产生一个对象
boolean saveUser = rememberPassword.saveUser(this, streLTa, streLTp);
if (saveUser) {
//提示
Toast.makeText(this, "欢迎", Toast.LENGTH_SHORT).show();
//跳转
Intent contacts_intent = new Intent(this, ContactsActivity.class);
//存放数据
contacts_intent.putExtra("LO_accountnum", streLTa);
contacts_intent.putExtra("LO_password", streLTp);
//启动跳转
startActivity(contacts_intent);
//结束跳转
finish();
}
5.在onCreate方法中,通过工具类调用获取信息的方法,方法里面传入上下文的参数,即this,然后再创建一个Map的对象,再判断Map对象是否为空,不为空的话,就设置账号和密码输入框的文本
//通过工具类调用获取数据的方法,方法里面传入上下文参数,再创建一个对象
Map<String, String> userInfo = rememberPassword.getUser(this);
//判断Map对象,如果不为空的话就设置账号和密码输入框的文本
if (userInfo != null) {
eLTa.setText(userInfo.get("accountnum_key"));
eLTp.setText(userInfo.get("password_key"));
}
这样呢就可以实现不带复选框记住密码的功能啦,最后也可以通过DDMS查看我们记住的账号和密码,并导出到桌面,右键编辑看一下存储的内容
这种实现方法呢,一定要注意key值的对应
再总结一下步骤:
1.我们需要一个工具类和一个登录的Activity 2.工具类里面需要一个静态的存放数据的方法,一个获取数据的Map集合方法 3.在登录界面的登录按钮点击事件中通过工具类调用存放方法获取并存放数据,在onCreate方法中通过工具类调用获取数据的方法,将数据展示在文本框
OK,那么笔记就分享到这里,如果还是有看不懂的同学呢,可以去我在哔哩哔哩分享的视频笔记查看详细步骤,下面附上链接:
感谢大家的阅读,我们一起学习,一起进步!