登陆页面记住密码

SharedPreferences是一个轻量级的存储类,采用xml文件存放数据。它是通过其Editor接口中的一些方法来操作SharedPreference的。

做登陆页面记住密码首先要先做好页面布局,我采用了两个页面,一个是登陆页面,还有一个是主页面。

这个页面中,主要有两个textview控件来做用户名和密码的输入框,一个Button控件是登陆按钮,一个checkbox控件做记住密码的复选框。

部分代码如下:

<TextView
        android:id="@+id/tvUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/tvName"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/etUsername"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tvUsername"
        android:layout_below="@+id/tvUsername"
        android:background="@android:drawable/edit_text"
        android:ems="10" />
    <TextView
        android:id="@+id/tvPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/etUsername"
        android:layout_below="@+id/etUsername"
        android:text="@string/tvPassword"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/etPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tvPassword"
        android:layout_below="@+id/tvPassword"
        android:layout_marginTop="16dp"
        android:background="@android:drawable/edit_text"
        android:ems="10"
        android:inputType="textPassword" />
    <Button
        android:id="@+id/btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/etPassword"
        android:layout_below="@+id/etPassword"
        android:layout_marginTop="20dp"
        android:background="#FF72CAE1"
        android:onClick="save"
        android:text="@string/btnLogin" />
    <CheckBox
        android:id="@+id/cbSetPass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btnLogin"
        android:layout_alignBottom="@+id/btnLogin"
        android:layout_alignLeft="@+id/etPassword"
        android:text="@string/cb_setPass" />

页面布局做好之后就是在LoginActivity类中写保存用户名和密码的代码。

在保存前要先创建文件:

// 创建文件
sharedPreferences=getSharedPreferences("user", MODE_PRIVATE);

保存用户名和密码的方法:

public void save(View view){
// 获取文本框中的用户名和密码
String userName=etName.getText().toString();
String userPass=etPass.getText().toString();
if(!(TextUtils.isEmpty(userName))&& !(TextUtils.isEmpty(userPass))){  //如果用户名和密码不为空
if("admin".equals(userName)&& "admin".equals(userPass)){  //用户民和密码都设定为admin
Editor edit=sharedPreferences.edit();
if(cbSetPass.isChecked()){ //如果保存密码的复选框被选中
edit.putString("userName", userName);
edit.putString("userPass", userPass);
edit.putBoolean("cbIscheck", true);
}
else{ //保存密码的复选框没有被选中,清除编辑
edit.clear();
}
edit.commit(); //提交编辑
Intent intent=new Intent(LoginActivity.this,MainActivity.class); //跳转到主页面
startActivity(intent);
finish();
}else{
//如果密码或用户名错误给出提示
Toast.makeText(this,"账号或密码错误" , Toast.LENGTH_LONG).show();
}
}
}

我们还需要在程序启动时就验证文件中是否已经存在用户名和密码了,于是我创建了getIscheck方法,首先在文件中查询保存密码复选框是否被选中,如果被选中就向用户名和密码赋值。

public void getIscheck(){
//获取保存密码复选框是否被选中
cbIscheck=sharedPreferences.getBoolean("cbIscheck",false);
// 如果保存密码复选框被选中
if(cbIscheck==true){
//向文本框和复选框中赋值
etName.setText(sharedPreferences.getString("userName" ,""));
etPass.setText(sharedPreferences.getString("userPass" ,""));
cbSetPass.setChecked(true);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中实现登录页面记住密码功能的一般步骤如下: 1. 在登录页面的表单中添加一个“记住密码”的复选框。 2. 在用户勾选“记住密码”时,将用户名和密码存储在浏览器的localStorage或cookie中。 3. 在页面加载时,检查localStorage或cookie中是否存在用户名和密码,如果存在,则将它们填充到相应的表单中。 4. 在用户提交表单时,判断是否勾选了“记住密码”,如果勾选了,则将用户名和密码存储在localStorage或cookie中。 具体实现可以参考以下代码: ```html <!-- 登录页面 --> <template> <form @submit.prevent="login"> <label> 用户名: <input v-model="username" type="text"> </label> <br> <label> 密码: <input v-model="password" type="password"> </label> <br> <label> <input v-model="remember" type="checkbox"> 记住密码 </label> <br> <button type="submit">登录</button> </form> </template> <script> export default { data() { return { username: '', password: '', remember: false } }, mounted() { // 页面加载时,检查localStorage中是否有用户名和密码 const username = localStorage.getItem('username') const password = localStorage.getItem('password') if (username && password) { this.username = username this.password = password this.remember = true } }, methods: { login() { // 提交表单时,判断是否勾选了“记住密码” if (this.remember) { localStorage.setItem('username', this.username) localStorage.setItem('password', this.password) } else { localStorage.removeItem('username') localStorage.removeItem('password') } // 发送登录请求... } } } </script> ``` 在上面的代码中,我们使用了localStorage来存储用户名和密码。如果你想使用cookie来存储,则可以使用js-cookie库来操作cookie。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值