android - 使用滑动从数据库中删除项目 - Sqflite
问题描述
我想实现一个功能,当我滑动列表项时,它会从数据库中删除该项目。我将 dismisible 用于滑动和删除部分,但我不知道如何从数据库中删除项目。这是我的数据库帮助文件:
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:wodo/models/task.dart';
class DatabaseHelper {
Future<Database> database() async {
return openDatabase(
join(await getDatabasesPath(), 'todo_database.db'),
onCreate: (db, version) {
return db.execute(
"CREATE TABLE tasks(id INTEGER PRIMARY KEY, name TEXT, date TEXT)");
},
version: 1,
);
}
Future<void> insertTask(Task task) async {
Database _db = await database();
await _db.insert('tasks', task.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace);
}
Future<List<Task>> getTasks() async {
Database db = await database();
List<Map<String, dynamic>> taskMap = await db.query('tasks');
return List.generate(taskMap.length, (index) {
return Task(
id: taskMap[index]['id'],
name: taskMap[index]['name'],
date: taskMap[index]['date']);
});
}
}
解决方案
要删除一个项目,只需使用 delete 方法。如文档中所述
db.delete(TABLE_NAME, where: "id = ?", whereArgs: [id]);
推荐阅读
- sql - TSQL:查找上一个“星期几”逻辑的日期。是否有任何边缘情况会失败并且可以简化吗?
- spring - Spring Config:将文件内容注入属性
- mongodb - 如何更新数组的部分文档
- java - 在 Android 或 Xamarin 中为 Edittext 设置提示
- r - 抑制 Rmd 内联输出中冗长的 kable 表,同时保留在最终 PDF 中
- c# - 基于网络抓取创建新文件然后下载到客户端的浏览器?
- python - 有没有办法在发送之前检查完整的发布请求标头和正文?
- php - 自定义管理员登录页面 WHMCS
- php - cURL 和 file_get_contents 不适用于特定 URL
- javascript - 谷歌标签管理器脚本在使用 f5 刷新后不起作用,但在 crtl + f5 后起作用