Android studio 如何通过登录界面输入将用户信息储存到数据库中 并通过按钮点击查看
时间: 2024-03-18 08:40:54 浏览: 173
首先,您需要创建一个数据库,可以使用SQLite数据库或Firebase数据库,这里以SQLite为例。
1. 创建数据库
在 Android Studio 中创建一个新项目后,可以在项目的 `app` 目录下创建一个 `database` 目录,并在其中创建一个 `DatabaseHelper.java` 文件。
在 `DatabaseHelper` 类中,编写创建数据库和表的代码:
```java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "user_db";
private static final String TABLE_USER = "user";
private static final String COLUMN_ID = "id";
private static final String COLUMN_USERNAME = "username";
private static final String COLUMN_PASSWORD = "password";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_USERNAME + " TEXT,"
+ COLUMN_PASSWORD + " TEXT" + ")";
db.execSQL(CREATE_USER_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
onCreate(db);
}
}
```
2. 创建登录界面
在 `res` 目录下创建一个 `layout` 目录,并在其中创建一个 `activity_login.xml` 文件,用于创建登录界面。
该界面包括两个 `EditText` 控件用于输入用户名和密码,以及一个 `Button` 控件用于登录。
```xml
<LinearLayout
...
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edit_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"
android:inputType="text"/>
<EditText
android:id="@+id/edit_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:inputType="textPassword"/>
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登录"/>
</LinearLayout>
```
3. 实现登录逻辑
在 `LoginActivity.java` 中实现登录逻辑,在登录按钮点击事件中获取输入的用户名和密码,并将其插入到数据库中:
```java
public class LoginActivity extends AppCompatActivity {
private EditText mEditUsername;
private EditText mEditPassword;
private Button mBtnLogin;
private DatabaseHelper mDbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mDbHelper = new DatabaseHelper(this);
mEditUsername = findViewById(R.id.edit_username);
mEditPassword = findViewById(R.id.edit_password);
mBtnLogin = findViewById(R.id.btn_login);
mBtnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = mEditUsername.getText().toString();
String password = mEditPassword.getText().toString();
SQLiteDatabase db = mDbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DatabaseHelper.COLUMN_USERNAME, username);
values.put(DatabaseHelper.COLUMN_PASSWORD, password);
long newRowId = db.insert(DatabaseHelper.TABLE_USER, null, values);
if (newRowId == -1) {
Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
}
});
}
}
```
4. 查看用户信息
可以在另一个界面中创建一个 `ListView` 控件,用于显示用户信息。在该界面中查询数据库中的用户信息,并将其显示在 `ListView` 中。
```java
public class UserListActivity extends AppCompatActivity {
private ListView mListView;
private DatabaseHelper mDbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_list);
mDbHelper = new DatabaseHelper(this);
mListView = findViewById(R.id.list_user);
ArrayList<HashMap<String, String>> userList = new ArrayList<>();
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String[] projection = {
DatabaseHelper.COLUMN_ID,
DatabaseHelper.COLUMN_USERNAME,
DatabaseHelper.COLUMN_PASSWORD
};
Cursor cursor = db.query(
DatabaseHelper.TABLE_USER,
projection,
null,
null,
null,
null,
null
);
while (cursor.moveToNext()) {
HashMap<String, String> user = new HashMap<>();
user.put("id", cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.COLUMN_ID)));
user.put("username", cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.COLUMN_USERNAME)));
user.put("password", cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.COLUMN_PASSWORD)));
userList.add(user);
}
cursor.close();
SimpleAdapter adapter = new SimpleAdapter(
this,
userList,
android.R.layout.simple_list_item_2,
new String[]{"username", "password"},
new int[]{android.R.id.text1, android.R.id.text2});
mListView.setAdapter(adapter);
}
}
```
在按钮点击事件中启动 `UserListActivity`:
```java
Intent intent = new Intent(LoginActivity.this, UserListActivity.class);
startActivity(intent);
```
以上就是通过登录界面输入将用户信息储存到数据库中并通过按钮点击查看的实现过程。
阅读全文