• Android学习10


    SharedPreferences

    今天练习了利用SharedPreferences保存登录用户名密码;

    layout布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="15dp">
    
        <EditText
            android:id="@+id/et_user"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="15sp"
            android:textColor="#FF8F44"
            android:background="@drawable/bg_username"
            android:hint="用户名"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"/>
    
        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="15sp"
            android:textColor="#FF8F44"
            android:layout_below="@id/et_user"
            android:background="@drawable/bg_username"
            android:hint="密码"
            android:inputType="textPassword"
            android:layout_marginTop="15dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"/>
    
        <CheckBox
            android:id="@+id/cb_pwd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="记住密码"
            android:checked="false"
            android:layout_below="@+id/et_password"
            android:layout_marginLeft="46dp"
            android:layout_marginTop="20dp"/>
    
        <CheckBox
            android:id="@+id/cb_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="自动登录"
            android:layout_marginLeft="237dp"
            android:layout_marginTop="20dp"
            android:layout_below="@+id/et_password"/>
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_below="@id/cb_login"
            android:layout_marginTop="20dp"
            android:background="@drawable/bg_btn4"
            android:text="登录"
            android:textSize="20sp"
            android:textColor="#fff"/>
    
    
    </RelativeLayout>
    View Code

    activity:

    package com.example.helloworld.datastorage;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.example.helloworld.R;
    
    public class SpLoginActivity extends AppCompatActivity {
    
        private EditText mEtUser;
        private EditText mEtPassword;
        private Button mBtnlogin;
        private CheckBox mCbremember, mCbautomatic;
        private SharedPreferences mSharedPreferences;
        private SharedPreferences.Editor mEditor;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sp_login);
    
            mEtUser = findViewById(R.id.et_user);
            mEtPassword = findViewById(R.id.et_password);
            mBtnlogin = findViewById(R.id.btn_login);
            mCbremember = findViewById(R.id.cb_pwd);
            mCbautomatic = findViewById(R.id.cb_login);
    
            //获得mSharedPreferences的实例
            mSharedPreferences = getSharedPreferences("logindata", MODE_PRIVATE);
            //获取一个Edit对象,所有对数据的操作都需要经过Edit
            mEditor = mSharedPreferences.edit();
            //从SharedPreferences中取出记住密码的状态值
            boolean isremember = mSharedPreferences.getBoolean("isremember", false);
    
            //判断状态值
            if (isremember) {
                //取出账号密码
                String names = mSharedPreferences.getString("name", null);
                String passs = mSharedPreferences.getString("pass", null);
                //设置复选框的状态是勾选的状态
                mCbremember.setChecked(true);
                mEtUser.setText(names);
                mEtPassword.setText(passs);
            }
    
            //取出自动登录的状态值
            boolean isautomatic = mSharedPreferences.getBoolean("isautomatic", false);
            if (isautomatic) {
                //跳转
                Toast.makeText(this, "登陆成功", Toast.LENGTH_LONG).show();
            }
    
            //对登录按钮添加监听
            mBtnlogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //判断记住密码的复选框是否勾选如果勾选就在SharedPreferences中存入账号片密码,状态值
                    if (mCbremember.isChecked()) {
                        mEditor.putString("name", mEtUser.getText().toString());//获取EditText里的文本内容
                        mEditor.putString("password",mEtPassword.getText().toString());
                        //存入状态值,(代表如果已经勾选了,那么就存一个true,的值)
                        mEditor.putBoolean("isremember", true);
                        mEditor.commit();
                    }
    
                    //自动登录
                    if (mCbautomatic.isChecked()) {
                        //当勾选了自动登录 存一个为true的状态值
                        mEditor.putBoolean("isautomatic", true);
                        mEditor.commit();
                    }
    
                    //跳转
                    Toast.makeText(SpLoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
    
                }
            });
        }
    
    }
    View Code

  • 相关阅读:
    docker进入交互界面
    FCN训练注意事项
    centos7 常用命令
    vim锁定,不能动
    爬虫三之beautifulsoup
    爬虫二之Requests
    爬虫一之基本操作
    MathType的配置问题;将word中的公式转换为mathtype格式失败,缺少OMML2MML.XSL
    神经网络实现Discuz验证码识别
    修改linux环境变量配置文件
  • 原文地址:https://www.cnblogs.com/xjmm/p/12291681.html
Copyright © 2020-2023  润新知