一、主界面的实现
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);
}
}



