Android 从SQLiteDatabase中的特定行提取数据
我的应用程序有一个RecyclerView列表,其中填充了SQLite表中的数据:UserDatabase。我通过在下面显示的DbHelper类中调用getAllUser方法来实现这一点。我的Recylcerview的ListAdapter中还有一个方法,它在单击列表项时启动ItemEditActivty。ItemEditActivity允许用户编辑或删除他们刚刚使用UpdateUserDetail和DeleteRowItem方法单击/打开的行数据,如下所示 这一切都很完美,但是,我不知道如何将ItemEditActivity的三个EditText设置为行的表值NAME、QUANTITY和DESCRIPTION;正如存储在表中一样。当前,当用户打开ItemEditActivity时,EditText的et_名称、et_数量和et_说明为空在onCreate期间,如何将这些EditText设置为保存在表格行中的数据? 编辑:我通过从ListAdapter传递一个的意图并在ItemEditActivity中将变量设置为itemPosition来获取所选的列表位置项 DbHelper类:Android 从SQLiteDatabase中的特定行提取数据,android,sqlite,Android,Sqlite,我的应用程序有一个RecyclerView列表,其中填充了SQLite表中的数据:UserDatabase。我通过在下面显示的DbHelper类中调用getAllUser方法来实现这一点。我的Recylcerview的ListAdapter中还有一个方法,它在单击列表项时启动ItemEditActivty。ItemEditActivity允许用户编辑或删除他们刚刚使用UpdateUserDetail和DeleteRowItem方法单击/打开的行数据,如下所示 这一切都很完美,但是,我不知道如何将
您必须在数据库中创建方法来获取单行。在DbHelper类中创建方法,如下所示
public UserData getSingleUserDetial(String userId) {
SQLiteDatabase db = this.getWritableDatabase();
UserData userData = null;
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_USERdETAIL + " WHERE " + _ID + "= ?", new String[]{userId});
try {
while (cursor.moveToNext())
{
userData = new UserData();
userData.name = cursor.getString(cursor.getColumnIndex(NAME));
userData.quantity = cursor.getString(cursor.getColumnIndex(QUANTITY));
userData.description = cursor.getString(cursor.getColumnIndex(DESCRIPTION));
}
cursor.close();
} catch (Exception e) {
Log.d(TAG, "Error while trying to get data from database");
} finally {
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
return userData;
}
然后像这样获取ItemEditActivity
UserData userData = dbHelper.getSingleUserDetial(userId);
您必须在数据库中创建方法来获取单行。在DbHelper类中创建方法,如下所示
public UserData getSingleUserDetial(String userId) {
SQLiteDatabase db = this.getWritableDatabase();
UserData userData = null;
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_USERdETAIL + " WHERE " + _ID + "= ?", new String[]{userId});
try {
while (cursor.moveToNext())
{
userData = new UserData();
userData.name = cursor.getString(cursor.getColumnIndex(NAME));
userData.quantity = cursor.getString(cursor.getColumnIndex(QUANTITY));
userData.description = cursor.getString(cursor.getColumnIndex(DESCRIPTION));
}
cursor.close();
} catch (Exception e) {
Log.d(TAG, "Error while trying to get data from database");
} finally {
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
return userData;
}
然后像这样获取ItemEditActivity
UserData userData = dbHelper.getSingleUserDetial(userId);
太好了,我非常感激。然而,在你的“while”结尾有一个分号,我认为不应该在那里。太好了,我非常感激。然而,在你的“while”结尾有一个分号,我认为不应该在那里。