在android中在程序运行时先创建一个用户数据库,包含用户名和密码,在运行登录程序时,点击登录按钮会与数据库的数据进行比对,正确返回1,错误返回0,给出具体代码实现
时间: 2024-03-13 20:47:45 浏览: 23
首先,需要创建一个数据库帮助类,用来创建和管理用户数据库,如下:
```
public class UserDatabaseHelper extends SQLiteOpenHelper {
// 数据库名称
private static final String DATABASE_NAME = "user.db";
// 数据库版本号
private static final int DATABASE_VERSION = 1;
// 用户表名
private static final String TABLE_NAME = "user";
// 用户名列名
private static final String COLUMN_NAME_USERNAME = "username";
// 密码列名
private static final String COLUMN_NAME_PASSWORD = "password";
public UserDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建用户表
String createTableSql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME_USERNAME + " TEXT, " + COLUMN_NAME_PASSWORD + " TEXT)";
db.execSQL(createTableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库升级操作
}
}
```
然后,在登录页面中,获取用户输入的用户名和密码,与数据库中的数据进行比对,如下:
```
public class LoginActivity extends AppCompatActivity {
// 用户名输入框
private EditText mUsernameEditText;
// 密码输入框
private EditText mPasswordEditText;
// 登录按钮
private Button mLoginButton;
// 用户数据库帮助类
private UserDatabaseHelper mUserDatabaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mUsernameEditText = findViewById(R.id.username_edit_text);
mPasswordEditText = findViewById(R.id.password_edit_text);
mLoginButton = findViewById(R.id.login_button);
// 创建用户数据库帮助类
mUserDatabaseHelper = new UserDatabaseHelper(this);
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取用户输入的用户名和密码
String username = mUsernameEditText.getText().toString();
String password = mPasswordEditText.getText().toString();
// 查询数据库中是否存在该用户
SQLiteDatabase db = mUserDatabaseHelper.getReadableDatabase();
String[] projection = {UserDatabaseHelper.COLUMN_NAME_PASSWORD};
String selection = UserDatabaseHelper.COLUMN_NAME_USERNAME + "=?";
String[] selectionArgs = {username};
Cursor cursor = db.query(UserDatabaseHelper.TABLE_NAME, projection, selection, selectionArgs, null, null, null);
if (cursor.moveToFirst()) {
// 用户存在,比对密码
String dbPassword = cursor.getString(cursor.getColumnIndex(UserDatabaseHelper.COLUMN_NAME_PASSWORD));
if (password.equals(dbPassword)) {
// 密码正确,登录成功
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();
}
} else {
// 用户不存在,登录失败
Toast.makeText(LoginActivity.this, "用户不存在!", Toast.LENGTH_SHORT).show();
}
cursor.close();
db.close();
}
});
}
}
```
需要注意的是,上述代码只是一个简单的示例,实际应用中需要对用户输入进行验证和处理,以保证应用的安全性和稳定性。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)