getSharedPreferences()方法
此方法接收两个参数,第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个;第二个参数用于指定操作模式,目前只有一种MODE_PRIVATE模式
SharedPreferences对象中提供了一系列的get方法,每种get方法都对应一种 SharedPreferences.Editor对象中的put方法。
这些get方法都接收两个参数,第一个参数是键,传入存储数据时相应的键就可以得值;第二个参数是默认值,即表示传入的键找不到相应的值时,就返回默认值。
先初始化相应的值
//记住密码
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private boolean isremember;
//自动登录
private boolean auto_login;
我所使用的相应类
//记住密码,将账号和密码设置到UI
remember_password();
//自动登录的函数
Auto_login();
布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--账号-->
<LinearLayout
android:layout_marginTop="150dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:gravity="center"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="账号"/>
<EditText
android:id="@+id/account"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:hint="手机号"/>
</LinearLayout>
<!--密码-->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:gravity="center"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="密码"/>
<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:inputType="textPassword"
android:hint=""/>
</LinearLayout>
<!-- 记住密码模块 此应用自动记住密码 自动登录-->
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="登陆"/>
<Button
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="注册"/>
<Button
android:id="@+id/forget_password"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="忘记密码"/>
</LinearLayout>
活动代码
package com.example.yaya.auto_hide;
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.EditText;
import android.widget.Toast;
import com.example.yaya.MainActivity;
import com.example.yaya.R;
import com.example.yaya.data.Account_manage;
import java.util.ArrayList;
import java.util.List;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.QueryListener;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.util.V;
public class login extends AppCompatActivity {
private EditText accountEdit; //获取账号
private EditText passwordEdit;//获取密码
private Button login; //登陆按钮
private Button register; //注册按钮
private Button change_pass; //改密码
//记住密码
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private boolean isremember;
//自动登录
private boolean auto_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
start_shili(); //实例化组件对象
//记住密码,将账号和密码设置到UI
remember_password();
//自动登录的函数
Auto_login();
//登陆活动 跳转到主界面
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
login_activity();
}
});
//跳转到注册活动
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(login.this,register.class);
startActivity(intent);
}
});
}
//登陆活动
private void login_activity(){
//获取UI中的信息
final String account = accountEdit.getText().toString().trim(); //获取注册手机号
final String password =passwordEdit.getText().toString().trim(); //获取注册密码
//判断账号和密码是否为空
if(account.length()==0||password.length()==0){
Toast.makeText(login.this,"账号或者密码不能为空",Toast.LENGTH_SHORT).show();
}else {//账号和密码不为空时进行登录
//默认密码和账号正确,可自己进行补充,也可以看我接下来的博客
//将账号和密码存进user表
editor = pref.edit();
editor.putBoolean("auto_login",true);
editor.putBoolean("remember_password",true);
editor.putString("account",account);
editor.putString("password",password);
editor.commit();
Intent intent = new Intent(login.this, MainActivity.class);
startActivity(intent);
}
}
//获取实例
private void start_shili(){
accountEdit = (EditText) findViewById(R.id.account); //获取账号
passwordEdit = (EditText) findViewById(R.id.password); //获取密码
login = (Button) findViewById(R.id.login); //登陆按钮
register=findViewById(R.id.register); //注册按钮
change_pass=findViewById(R.id.forget_password); //忘记密码按钮
pref = getSharedPreferences("user",MODE_PRIVATE); // 信息表,存所记住密码的信息
isremember = pref.getBoolean("remember_password",false);//判断是否记住密码
auto_login = pref.getBoolean("auto_login",false); //判断是否自动登录
}
//记住密码,将账号和密码设置到UI
private void remember_password(){
if (isremember){
//从文件中获取数据
String account = pref.getString("account","");
String password = pref.getString("password","");
//将数据设置到UI上
accountEdit.setText(account);
passwordEdit.setText(password);
}
}
private void Auto_login(){
if (auto_login){
//也可以直接写Intent跳转活动,我直接简单了
login_activity();
}
}
}
如果有什么不懂得 可以给我留言
或者给我邮箱:1985647762@qq.com留言,看到就会回复