zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    java 根据对象属性排序
    无法初始化SFTP协议。主机是SFTP服务器吗
    Spring IOC 学习(三)IOC容器的依赖注入
    Spring-IOC学习-02 IOC容器初始化
    nginx简单使用
    Spring-IOC学习-01 IOC重要的几个接口定义
    Spring-IOC学习
    Http Service
    C#从入门到放弃--字符串类型转数字类型
    VS系列--快捷键的使用
  • 原文地址:https://www.cnblogs.com/xjmm/p/12291681.html
Copyright © 2011-2022 走看看