登陆页面的记住账号和密码

本文介绍了如何在Android应用中实现登录页面的记住账号和密码功能。通过配置XML布局文件,设置EditText、CheckBox和Button,并使用SharedPreferences进行数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先配置登陆的xml文件,设置两个EditText和一个Button以及一个CheckBox;
配置代码如下:

<?xml version="1.0" encoding="utf-8"?>




    <EditText
        android:id="@+id/et_userName"
        android:layout_width="300dp"
        android:layout_height="wrap_content"

        />



</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="100dp"
        android:text="密    码:"
        android:textSize="30dp"
        android:textColor="@android:color/black"
        />

    <EditText
        android:id="@+id/et_passWord"
        android:layout_width="300dp"
        android:layout_height="wrap_content"

        />





</LinearLayout>
    <CheckBox
        android:id="@+id/cbox_remember"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="记住密码"
        />
    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="登陆"
        />
然后配置MainActicity页面代码,其中最主要的内容是对button设置点击监听事件,如果监听到被点击之后需要执行一下操作, 首先,检测CheckBox是否被选中调用的是checkbox中的ischecked方法,在通过if语句如果被选中的话需要对输入的账号密码进行记住操作。 记住密码的最关键操作是**SharedPreferences**本项目运用这个方法可以实现保存用户名和密码,数据存放很像Map集合,以键值对的方式存放关键代码如下 :SharedPreferences config=config.getSharedPreferences("config",MODE_PRIVATE);其中config是文件名,MODE_PRIVATE是文件的权限。 然后通过定义编辑器,获得编辑这个文件的编辑器;主要代码如下 Editor editor=config.edit(); //获得编辑这个文件的编辑器 editor.putString("username",et_userName); //利用编辑器编辑内容 editor.commit()//调用这个放发保存数据。 具体执行代码如下:

public class MainActivity extends AppCompatActivity {
private EditText et_userName;
private EditText et_passWord;
private CheckBox cbox_remember;
private Button btn_login;
private SharedPreferences config;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    config = getSharedPreferences("config", MODE_PRIVATE);
    et_passWord = findViewById(R.id.et_passWord);
    et_userName = findViewById(R.id.et_userName);
    cbox_remember = findViewById(R.id.cbox_remember);
    btn_login = findViewById(R.id.btn_login);
    boolean isChecked = config.getBoolean("isChecked", false);
    if (isChecked) {
        et_userName.setText(config.getString("username", ""));
        et_passWord.setText(config.getString("password", ""));

    }
    cbox_remember.setChecked(isChecked);

    btn_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SharedPreferences.Editor editor = config.edit();
            String username = et_userName.getText().toString();
            String password = et_passWord.getText().toString();
            boolean isChecked = cbox_remember.isChecked(); //获取是否被选中
            editor.putBoolean("isChecked", isChecked);   //将是否选中的信息存到编辑器中去
            if (cbox_remember.isChecked()) {
                editor.putString("username", username).putString("password", password);

            } else {
                editor.remove("username").remove("password");

            }
            editor.commit();
            Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
        }
    });
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值