android存储登录用户名密码,AndroidStudio实现账号密码保存功能

前提

AndroidStudio版本:3.5.2

JDK版本:1.8.0

SDK版本:Android 4.4(KitKat)

AVD类型:Pixel2 API 19

实现步骤

第一步

首先,我们先创建一个项目,这里我以QQ登录为例,我的项目名为SaveQQ。

项目生成之后会有两个自动生成的文件 activity_main.xml 和 MainActivity.java;

activity_main.xml是用来编辑页面的;

MainActivity.java是用来加载页面的。

第二步

然后我们需要准备一张背景图和一张头像图

head.jpg

background.jpg

第三步

准备工作做好之后我们就可以编写页面样式了,我们可以在 activity_main.xml 文件中自定义页面样式,下面是我的 activity_main.xml 代码:

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="10dp"

android:background="@drawable/background">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="欢迎使用QQ"

android:layout_margin="20dp"

android:textColor="#000000"

android:textSize="25sp"

android:gravity="center"/>

android:layout_width="100dp"

android:layout_height="100dp"

android:id="@+id/image"

android:layout_marginTop="100dp"

android:background="@drawable/head"

android:layout_centerHorizontal="true"/>

android:id="@+id/et_name"

android:layout_width="300sp"

android:layout_height="50sp"

android:hint="QQ号码/手机/邮箱"

android:maxLines="1"

android:textColor="#000000"

android:textSize="20sp"

android:textStyle="bold"

android:layout_below="@id/image"

android:layout_marginTop="50dp"

android:layout_centerHorizontal="true"/>

android:id="@+id/et_pwd"

android:layout_width="300sp"

android:layout_height="50sp"

android:hint="密码"

android:maxLines="1"

android:textColor="#000000"

android:textSize="20sp"

android:textStyle="bold"

android:layout_below="@id/et_name"

android:layout_marginTop="10dp"

android:layout_centerHorizontal="true"/>

android:id="@+id/btn_login"

android:layout_width="200dp"

android:layout_height="50dp"

android:text="登录"

android:textSize="20sp"

android:layout_below="@id/et_pwd"

android:layout_marginTop="30dp"

android:layout_centerHorizontal="true"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="忘记密码 | 注册账号"

android:layout_alignParentBottom="true"

android:layout_marginBottom="60dp"

android:layout_centerHorizontal="true"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="最终解释权归作者所有"

android:textSize="10dp"

android:layout_alignParentBottom="true"

android:layout_marginBottom="15dp"

android:layout_centerHorizontal="true"/>

效果如图:

第四步

接下来我们要编写一个工具类 SPSaveQQ.java ,用来进行数据的保存和提取操作。

在这里作者使用的是SharedPreferences 的存储方式,好处是使用简单,容易理解。

下面是我的 SPSaveQQ.java 类的代码:

package com.example.saveqq;

import android.content.Context;

import android.content.SharedPreferences;

import java.util.HashMap;

import java.util.Map;

public class SPSaveQQ {

// 保存QQ账号和登录密码到data.xml文件中

public static boolean saveUserInfo(Context context, String name, String password) {

SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);

SharedPreferences.Editor edit = sp.edit();

edit.putString("userName",name);

edit.putString("pwd",password);

edit.commit();

return true;

}

//从data.xml文件中获取存储的QQ帐号和密码

public static Map getUserInfo(Context context) {

SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);

String name = sp.getString("userName",null);

String password = sp.getString("pwd", null);

Map userMap = new HashMap();

userMap.put("name", name);

userMap.put("password",password);

return userMap;

}

}

第五步

最后我们要编写界面交互代码,也就是 MainActivity.java 文件,代码如下:

package com.example.saveqq;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private EditText etName;

private EditText etPassword;

private Button btnLogin;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 初始界面

initView();

Map userInfo = SPSaveQQ.getUserInfo(this);

if (userInfo != null){

etName.setText(userInfo.get("name"));

etPassword.setText(userInfo.get("password"));

}

}

private void initView() {

etName = (EditText) findViewById(R.id.et_name);

etPassword = (EditText) findViewById(R.id.et_pwd);

btnLogin = (Button) findViewById(R.id.btn_login);

btnLogin.setOnClickListener(this);

}

@Override

public void onClick(View v) {

//当点击登录按钮时,获取QQ账号和密码

String name = etName.getText().toString().trim();

String password = etPassword.getText().toString();

// 检验账号和密码是否为空

if(TextUtils.isEmpty(name)){

Toast.makeText(this, "请输入QQ账号", Toast.LENGTH_SHORT).show();

return;

}

if(TextUtils.isEmpty(password)){

Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();

return;

}

// 登录成功

Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();

//保存用户信息

boolean saveSuccess = SPSaveQQ.saveUserInfo(this, name, password);

if (!saveSuccess){

Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();

}

}

}

第六步

执行就完事了。

在进行登陆的时候我们会发现QQ界面的用户名和密码自动填写了你上一次提交的密码。

你可能感兴趣的:(android存储登录用户名密码,AndroidStudio实现账号密码保存功能)