android 利用数据库写一个登陆注册
时间: 2023-08-02 21:13:00 浏览: 34
好的,下面是一个简单的 Android 登录注册示例程序,使用 SQLite 数据库存储用户信息。
1. 创建一个名为 `User` 的 Java 类,表示一个用户对象,包含用户名和密码属性:
```java
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
```
2. 在 `MainActivity` 中创建数据库和表:
```java
public class MainActivity extends AppCompatActivity {
private static final String DB_NAME = "users.db";
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "users";
private static final String COLUMN_USERNAME = "username";
private static final String COLUMN_PASSWORD = "password";
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建数据库和表
database = openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);
database.execSQL(
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME +
" (" + COLUMN_USERNAME + " TEXT PRIMARY KEY, " +
COLUMN_PASSWORD + " TEXT)"
);
}
}
```
3. 实现注册功能,在注册界面中输入用户名和密码,点击按钮添加到数据库中:
```java
public class RegisterActivity extends AppCompatActivity {
private EditText usernameEditText;
private EditText passwordEditText;
private Button registerButton;
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
// 打开数据库
database = openOrCreateDatabase(MainActivity.DB_NAME, MODE_PRIVATE, null);
usernameEditText = findViewById(R.id.usernameEditText);
passwordEditText = findViewById(R.id.passwordEditText);
registerButton = findViewById(R.id.registerButton);
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取用户名和密码
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
// 将用户添加到数据库
ContentValues values = new ContentValues();
values.put(MainActivity.COLUMN_USERNAME, username);
values.put(MainActivity.COLUMN_PASSWORD, password);
database.insert(MainActivity.TABLE_NAME, null, values);
// 注册成功,返回登录界面
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
```
4. 实现登录功能,在登录界面中输入用户名和密码,点击按钮从数据库中查找用户信息:
```java
public class LoginActivity extends AppCompatActivity {
private EditText usernameEditText;
private EditText passwordEditText;
private Button loginButton;
private TextView registerTextView;
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// 打开数据库
database = openOrCreateDatabase(MainActivity.DB_NAME, MODE_PRIVATE, null);
usernameEditText = findViewById(R.id.usernameEditText);
passwordEditText = findViewById(R.id.passwordEditText);
loginButton = findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取用户名和密码
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
// 在数据库中查找用户
Cursor cursor = database.query(
MainActivity.TABLE_NAME,
null,
MainActivity.COLUMN_USERNAME + " = ? AND " + MainActivity.COLUMN_PASSWORD + " = ?",
new String[]{username, password},
null,
null,
null
);
if (cursor.moveToFirst()) {
// 登录成功,跳转到主界面
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();
}
}
});
registerTextView = findViewById(R.id.registerTextView);
registerTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到注册界面
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
}
```
以上就是一个简单的 Android 登录注册示例程序,使用 SQLite 数据库存储用户信息。