栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用SharedPreference实现用户登录(二 .java的实现)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用SharedPreference实现用户登录(二 .java的实现)

一、主界面的实现 

import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
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;

//登陆界面
public class MainActivity extends AppCompatActivity {
    private EditText editName;
    String userEmail;
    String userPassword;
    String username;
    String userPhone;
    private EditText editPassWord;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //在MainActivity中初始化,第一个参数为要获取的Activity的包名
        SharedPreferences sh = getSharedPreferences("mys",MODE_PRIVATE);
        //这样就可以对第一个activity2中的在数据库中存放的用户名、手机号、邮箱和密码
        userEmail=sh.getString("email","");
        userPassword=sh.getString("password","");
        username=sh.getString("username","");
        userPhone=sh.getString("phone","");

        judge();
    }
    //初始化控件以及判断是否存在该用户的信息
    private void judge() {
        //初始化控件
        editName = findViewById(R.id.ed1);
        editPassWord = findViewById(R.id.ed2);
        //注册
        Button button1 = findViewById(R.id.bt1);
        button1.setOnClickListener(new ButtonListener());

        Button button2 = findViewById(R.id.bt2);
        button2.setOnClickListener(new ButtonListener());
    }
    private class ButtonListener implements View.OnClickListener {
        @SuppressLint("NonConstantResourceId")
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.bt1:
                    Intent intent = new Intent();
                    intent = new Intent(MainActivity.this, activity2.class);
                    startActivity(intent);
                    finish();
                    break;
                case R.id.bt2:
                    Intent intent1 = new Intent();
                    String name = editName.getText().toString();
                    String password = editPassWord.getText().toString();
                    if ((name.equals(userEmail)|| name.equals(username)|| name.equals(userPhone) )&& password.equals(userPassword)) {
                        Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                        //跳转界面,进入登陆界面
                        intent1.setClass(getApplicationContext(), layout.class);
                        startActivity(intent1);
                    } else {
                        Toast.makeText(MainActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
                    }
                    break;
            }
        }
    }
}

二、sharedpreferences.java(这里我写的只能存储一个用户的信息)

import android.content.Context;
import android.content.SharedPreferences;
import android.widget.RadioButton;
import android.widget.Toast;

import java.util.HashMap;
import java.util.Map;
//存储用户信息
public class SharedPreference {
    private Context mContext;
    private RadioButton radioButton;
    public SharedPreference() {}
    public SharedPreference(Context mContext) {
        this.mContext = mContext;
    }

    //定义一个保存数据的方法
    public void save(String username,String password, String confirmPassword,String phone,String email,String address) {
        SharedPreferences sp = mContext.getSharedPreferences("mys", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        //检查密码是否一致
        if(confirmPassword.equals(password)) {
            editor.putString("username", username);
            editor.putString("password", password);
            editor.putString("ConfirmPassword", confirmPassword);
            editor.putString("phone", phone);
            editor.putString("email", email);
            editor.putString("address", address);
            editor.apply();
        }
        else
            Toast.makeText(mContext, "请检查密码是否一致", Toast.LENGTH_SHORT).show();
    }

    //定义一个读取SP文件的方法
    public Map read() {
        Map data = new HashMap();
        SharedPreferences sp = mContext.getSharedPreferences("mys", Context.MODE_PRIVATE);
        data.put("username", sp.getString("username", ""));
        data.put("password", sp.getString("password", ""));
        data.put("ConfirmPassword", sp.getString("ConfirmPassword", ""));
        data.put("phone", sp.getString("phone", ""));
        data.put("email", sp.getString("email", ""));
        data.put("address", sp.getString("address", ""));
        return data;
    }
}

三、注册界面activity2.java


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.PrecomputedText;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.annotation.Nullable;

import java.util.Map;
//注册界面
public class activity2  extends MainActivity{

    private EditText editName;
    private EditText editPassWord;
    private EditText editConfirmPassWord;
    private EditText editPhone;
    private EditText editEmail;
    private EditText editAddress;
    private RadioGroup choice;
    private RadioButton radioButton;

    private String name;
    private String password;
    private String confirmPassword;
    private String phone;
    private String email;
    private String address;
    private SharedPreference sh;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
        Context mContext = getApplicationContext();
        sh = new SharedPreference(mContext);
        bindViews();
    }

    private void bindViews() {
        //初始化控件
        editName = (EditText)findViewById(R.id.edit1);
        editPassWord = (EditText)findViewById(R.id.edit2);
        editConfirmPassWord = (EditText)findViewById(R.id.edit3);
        editPhone = (EditText)findViewById(R.id.edit4);
        editEmail = (EditText)findViewById(R.id.edit5);
        editAddress = (EditText)findViewById(R.id.edit6);
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                name = editName.getText().toString();
                password = editPassWord.getText().toString();
                confirmPassword=editConfirmPassWord.getText().toString();
                phone=editPhone.getText().toString();
                email=editEmail.getText().toString();
                address=editAddress.getText().toString();
                //保存数据
                sh.save(name, password, confirmPassword, phone, email, address);
                //密码一致则跳转界面
                if(password.equals(confirmPassword)) {
                    Toast.makeText(activity2.this,"注册成功,您的信息已经保存",Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent();
                    intent = new Intent(activity2.this, MainActivity.class);
                    startActivity(intent);
                    finish();
                }
            }
        });
        //配置RadioGroup的监听
        choice=(RadioGroup) findViewById(R.id.choice);
        choice.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int selected = choice.getCheckedRadioButtonId();
                radioButton = (RadioButton) findViewById(selected);
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();
        Map data = sh.read();
        editName.setText(data.get("username"));
        editPassWord.setText(data.get("password"));
        editConfirmPassWord.setText(data.get("ConfirmPassword"));
        editPhone.setText(data.get("phone"));
        editEmail.setText(data.get("email"));
        editAddress.setText(data.get("address"));
    }
}

四、登陆成功界面layout.java(此界面可进行进一步优化,比如显示信息什么的。。。。我的这个就一个背景,不想写了嵐)


import android.os.Bundle;

//登陆成功界面
public class layout extends MainActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878285.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号