编写一个用户登录的程序,要求登录的用户名和密码存入到SharedPreferences。
时间: 2024-03-13 15:43:33 浏览: 18
以下是一个简单的用户登录程序,实现了将用户名和密码存储到SharedPreferences中,以及登录时的验证:
```java
public class LoginActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (!TextUtils.isEmpty(savedUsername) && !TextUtils.isEmpty(savedPassword)) {
etUsername.setText(savedUsername);
etPassword.setText(savedPassword);
}
Button btnLogin = findViewById(R.id.btn_login);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(username)) {
Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (username.equals(savedUsername) && password.equals(savedPassword)) {
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
}
}
});
Button btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onResume() {
super.onResume();
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (!TextUtils.isEmpty(savedUsername) && !TextUtils.isEmpty(savedPassword)) {
etUsername.setText(savedUsername);
etPassword.setText(savedPassword);
}
}
}
```
在登录界面,我们首先从SharedPreferences中读取保存的用户名和密码,如果存在,则填充到对应的EditText中。当用户点击登录按钮时,我们获取用户输入的用户名和密码,并与SharedPreferences中保存的用户名和密码进行比对,如果匹配,则登录成功,否则提示用户用户名或密码错误。如果用户点击注册按钮,则跳转到注册界面。
在注册界面,我们通过SharedPreferences将新注册的用户名和密码保存起来:
```java
public class RegisterActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
Button btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(username)) {
Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
```
在注册界面,我们首先获取用户输入的用户名和密码,然后通过SharedPreferences将其保存起来。保存完成后,提示用户注册成功,并关闭注册界面。