编写一个用户注册登录程序,用户在填写完注册信息后,点击“注册”按钮,程序会调用一个Service将用户注册信息存储到当前程序的偏好设置中。注册完毕后,输入正确的用户名和密码可以登录
时间: 2024-05-13 21:15:34 浏览: 7
这是一个基于 Android 平台的用户注册登录程序的示例代码,其中使用了 SharedPreferences 来存储用户信息。
首先是用户注册页面的布局文件 `activity_register.xml`:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="密码" />
<Button
android:id="@+id/btn_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="注册" />
</LinearLayout>
```
接下来是对应的 Java 代码 `RegisterActivity.java`:
```java
public class RegisterActivity extends AppCompatActivity {
private EditText etUsername, etPassword;
@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);
Button btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
register();
}
});
}
private void register() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
// 检查用户名和密码是否为空
if (TextUtils.isEmpty(username)) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
// 将用户信息保存到 SharedPreferences 中
SharedPreferences sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
// 注册成功,返回登录页面
Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show();
finish();
}
}
```
用户注册信息存储到 `SharedPreferences` 中后,接下来是用户登录页面的布局文件 `activity_login.xml`:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="密码" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登录" />
</LinearLayout>
```
对应的 Java 代码 `LoginActivity.java` 如下:
```java
public class LoginActivity extends AppCompatActivity {
private EditText etUsername, etPassword;
@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);
Button btnLogin = findViewById(R.id.btn_login);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
}
private void login() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
// 检查用户名和密码是否为空
if (TextUtils.isEmpty(username)) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
// 从 SharedPreferences 中获取用户信息,并进行验证
SharedPreferences sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (!username.equals(savedUsername) || !password.equals(savedPassword)) {
Toast.makeText(this, "用户名或密码错误,请重新输入", Toast.LENGTH_SHORT).show();
return;
}
// 登录成功,进入主页面
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
```
以上代码实现了一个简单的用户注册登录功能,可以作为参考。