Android实现记住账号密码功能
作者:Red&&Black 发布时间:2021-10-02 01:51:24
标签:Android,账号密码
本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下
布局
一个复选框
<CheckBox
android:id="@+id/checkbox"
android:radius="5dp"
android:text="记住我"
android:layout_marginLeft="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private CheckBox checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkBox = findViewById(R.id.checkbox);
SharedPreferences sp = getSharedPreferences("items",MODE_PRIVATE);
/**
* getBoolean(name,defaultValue) 若没有name,则返回defaultValue
* 获取标志位,若flag为true,则有数据
*/
if( sp.getBoolean("flag",false)==true ){
getData();
//模拟点击
checkBox.performClick();
}
//设置checkbox的监听事件
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isCheck) {
//若选中,则保存数据,否则,清除数据
if(isCheck){
saveData();
Toast.makeText(MainActivity.this,"已保存",Toast.LENGTH_LONG).show();
}
else{
clearData();
}
}
});
}
/**
* SharedPreferences为轻量级的存储方式
* Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问。
* 在该模式下,写入的内容会覆盖原文件的内容
* 存储位置:Device File Explorer(idea 或Android studio右下角)
* data/data/项目的包名/shared_prefs
*/
//清除数据
private void clearData() {
SharedPreferences sp = getSharedPreferences("items",MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
editor.commit();
et1.setText("");
et2.setText("");
}
/**
* 获取SharedPreferences数据
*/
private void getData(){
SharedPreferences sp = getSharedPreferences("items", Context.MODE_PRIVATE);
String username = sp.getString("username","");
String password = sp.getString("password","");
et1.setText(username);
//密文设置
TransformationMethod method = PasswordTransformationMethod.getInstance();
et2.setText(password);
et2.setTransformationMethod(method);
}
/**
*保存数据
* android:onClick响应的方法 只能用修饰符public
*/
public void saveData(){
SharedPreferences sharedPreferences = getSharedPreferences("items", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
String username = et1.getText().toString();
String password = et2.getText().toString();
if(!username.equals("") && !password.equals("")) {
editor.putString("username", username);
editor.putString("password", password);
editor.putBoolean("flag", true); //标志位
editor.commit();
}
}
}
测试
来源:https://blog.csdn.net/m0_46267375/article/details/109059917


猜你喜欢
- 最近面试时,面试官问了一个列表倒计时效果如何实现,现在记录一下。运行效果图实现思路实现方法主要有两个:1.为每个开始倒计时的item启动一个
- 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考。具体用法分析如下:默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它。
- 最近项目上产品经理提了个需求,要求关闭语言国际化,不管手机系统设置那个国家的语言,都要显示汉语,好吧,既然有需求,那就做吧。但是项目中已经有
- 现阶段的问题现在是云原生和容器化时代,.NET Core对于云原生来说有非常好的兼容和亲和性,dotnet社区以及微软为.NET Core提
- httpSecurity类似于spring security的xml配置文件命名空间配置中的<http>元素。它允许对特定的ht
- 让按钮拥有返回键的功能很简单,在点击事件加上finish();就OK了。如:public void onClick(View v){fini
- 一.MyBatis简介1)MyBatis 是一款优秀的持久层框架2)MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结
- 本文实例为大家分享了Java读取并下载网络文件的具体代码,供大家参考,具体内容如下import java.io.ByteArrayOutpu
- --删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk
- 本文实例为大家分享了Java实现斗地主游戏的具体代码,供大家参考,具体内容如下原理图:斗地主过程: 1、组合牌&nb
- Windows系统启动Java程序会弹出黑窗口。黑窗口有几点不好。首先它不美观;其次容易误点导致程序关闭;但最让我匪夷所思的是:将鼠标光标选
- 我们在平常项目开发中,经常会用到周期性定时任务,这个时候使用定时任务就能很方便的实现。在SpringBoot中用得最多的就是Schedule
- 前言自己android开发也有些年头了,每每回想起作为初学者的时候自己写的代码,自己会有种喷自己的冲动,代码写的太渣了。因此想着自己要总结下
- 本文实例为大家分享了C#15子游戏的实现代码,供大家参考,具体内容如下所需控件:一个Button,拖入Form1中即可。源码:using S
- 路由做Android/iOS原生开发的时候,要打开一个新的页面,你得知道你的目标页面对象,然后初始化一个Intent或者ViewContro
- 使用new操作符来创建对象,其背后到底发生了什么?有一个父类Animal,Dog派生于Animal。class Program
- 本文实例为大家分享了C语言实现顺序表的顺序查找和折半查找的具体代码,供大家参考,具体内容如下顺序查找:#include <iostre
- 过去的每一year,涌现出越来越多的Java框架。就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的。连我的老祖
- 本文实例讲述了Java集合定义与用法。分享给大家供大家参考,具体如下:java集合大体可分为三类,分别是Set、List和Map,它们都继承
- 基本概念Java中创建对象时,一旦程序终止,创建的对象可能就不存在.要想使得对象能够在程序不运行的状态下依然能够保存对象的信息,这时就需要用