gpt4 book ai didi

java - 删除 Android 列表中的最后一项

转载 作者:行者123 更新时间:2023-12-02 04:12:21 33 4
gpt4 key购买 nike

我正在编写一个 Android 简单的待办事项列表应用程序用于学习目的。

这是我的函数,它使用列表项更新 UI:

private void updateUI() {
helper = new TaskDBHelper(MainActivity.this);
SQLiteDatabase sqlDB = helper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK },//, TaskContract.Columns.DESCRIPTION},
null, null, null, null, null);

listAdapter = new SimpleCursorAdapter(
this,
R.layout.task_view,
cursor,
new String[]{TaskContract.Columns.TASK}, //TaskContract.Columns.DESCRIPTION },
new int[]{R.id.taskTextView},
0
);

this.setListAdapter(listAdapter);
}

我需要一个 SQlite 语句来删除列表中的最后一项。由于我是 Android 新手,任何帮助将不胜感激,谢谢。

最佳答案

在 Android 中删除一行已经在 SO 问题中涵盖了 Deleting Row in SQLite in Android 。本质上,您在 SQLiteDatabase 上使用 delete() 方法:

db.delete(tableName, whereClause, whereArgs);

举个例子:

db.delete(TABLE_NAME, KEY_ID + "=?", new String[] { String.valueOf(keyIdOfRowToDelete) } );

要删除的行的正确 KEY_ID 位于光标的最后一行,可通过 moveToLast() 方法访问:

cursor.moveToLast();
int keyIdOfRowToDelete = cursor.getInt(cursor.getColumnIndex(KEY_ID_COLUMN_NAME));

删除必要的条目后,运行另一个query(),就像您在问题中所做的那样,刷新光标,并更新您的 SimpleCursorAdapter 首先使用新光标调用 swapCursor(),然后调用 notifyDataSetChanged():

listAdapter.swapCursor(newCursor);
listAdapter.notifyDataSetChanged();

关于java - 删除 Android 列表中的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33683282/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com