界面:

功能:

QQ登录界面,默认设置登录账号为admin,密码也为admin。

(1)、如果输入账号或密码其中任意一个错误直接显示密码错误请重试,此时会清空账号密码输入框中的内容,勾选与未勾选记住密码按钮,效果一样;

(2)、如果账号密码都输入正确没勾选记住密码按钮,则显示登陆成功,未保存;

(3)、如果账号密码都输入正确,且勾选了记住密码按钮,则显示登陆成功已保存,此时保存了密码,之后再重新进入app账号密码自动显示在屏幕的相应位置,保存数据均用SharedPreferences数据存储方式

 

(4)、保存数据的文件及内容

 

 

Layout代码:

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:src="@drawable/qq" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="30dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号:"
            android:textSize="30sp" />

        <EditText
            android:id="@+id/etName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入账号"
            android:textSize="30sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="30sp" />

        <EditText
            android:id="@+id/etPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:inputType="textPassword"
            android:textSize="30sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="30dp">

        <CheckBox
            android:id="@+id/cbRemember"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:text="记住密码"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btnLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:onClick="btnLogin"
            android:text="登录"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btnExit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:text="取消"
            android:textSize="20sp" />

    </LinearLayout>


</LinearLayout>

 

Activity代码:

package com.example.sp;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private EditText etName;
    private EditText etPassword;
    private CheckBox cbRemember;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etName = findViewById(R.id.etName);
        etPassword = findViewById(R.id.etPassword);
        cbRemember = findViewById(R.id.cbRemember);
        SharedPreferences sp = getSharedPreferences("date", MODE_PRIVATE);
        etName.setText(sp.getString("name", ""));
        etPassword.setText(sp.getString("password", ""));

    }

    public void btnLogin(View view) {
        if ("admin".equals(etName.getText().toString()) && "admin".equals(etPassword.getText().toString())) {
            if (cbRemember.isChecked()) {
                SharedPreferences sp = getSharedPreferences("date", MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("name", etName.getText().toString());
                editor.putString("password", etPassword.getText().toString());
                editor.commit();
                Toast.makeText(this, "登陆成功,已保存", Toast.LENGTH_SHORT).show();
            } else {
                SharedPreferences sp = getSharedPreferences("date", MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("name", "");
                editor.putString("password", "");
                editor.commit();
                Toast.makeText(this, "登陆成功,未保存", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(this, "密码错误,请重试", Toast.LENGTH_SHORT).show();
            etName.setText("");
            etPassword.setText("");
        }
    }
}