数据库更改后如何刷新 ListView?

2024-01-06

我正在尝试在 Android 应用程序中管理一个简单的列表。列表的内容保存在 SQLite 数据库中。当用户选择并按住特定行时,会出现一个带有“删除”选项的上下文菜单。当他们选择“删除”时,该行将从数据库中删除,但视图不会刷新。当我退出应用程序并重新进入时,相应的行已被删除。所以,我知道该行已被删除,只是 ListView 没有刷新。

这是相关的代码位...

在onCreate方法中...

SQLiteDatabase db = tasks.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, 
    new String[] { _ID, TITLE, DETAILS, }, 
    null, null, null, null, TITLE + " DESC");
startManagingCursor(cursor);

ListView lv = (ListView) findViewById(R.id.list);
lv.setAdapter(new SimpleCursorAdapter(this, 
    android.R.layout.simple_list_item_1,
    cursor,
    new String[] {TITLE},
    new int[] { android.R.id.text1}
));

在 onContextItemSelected 方法中...

switch(item.getItemId()) {
case 0:
    SQLiteDatabase db = tasks.getWritableDatabase();
    ListView lv = (ListView) findViewById(R.id.list);
    SimpleCursorAdapter adapter = (SimpleCursorAdapter) lv.getAdapter();
    db.delete(TABLE_NAME, "_ID=?", new String[] {adapter.getCursor().getString(0)});
    adapter.notifyDataSetChanged(); // Not working, clears screen and doesn't reload
    return true;
}
return super.onContextItemSelected(item);

我缺少什么?

Thanks!


摆脱notifyDataSetChanged()并打电话requery()在你的Cursor. 这是一个示例项目 https://github.com/commonsguy/cw-android/tree/master/Database/Constants证明了这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库更改后如何刷新 ListView? 的相关文章

随机推荐

  • 如何对 IBM Cloud 数据库进行按需备份

    我在 IBM Cloud 中有一个 Elasticsearch 部署 我想从中定期进行按需备份 有没有办法使用命令行启动备份 IBM Cloud 数据库每天定期备份其所有数据库 但您无法选择备份计划 如果您想更频繁地创建备份或继续创建备份
  • 我应该对 Asp.NET Web-api 路由使用 RouteParameter 还是 UrlParameter?

    我见过两者都被使用 所以我想知道 它们做相同的事情还是不同的事情 如果是后者 有什么区别呢 我尝试通过查看 Visual Studio MVC 4 rc Web api 模板来自己回答这个问题 但遗憾的是它同时使用了两者 所以我的困惑仍然存
  • React context - 'contextType' 未定义

    我在用 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protection应该支持反应Context并尝试运行一个与以下相同的简单示例反应上下文 https r
  • 如何更改 Vob 所有者和 Vob 组?

    我尝试更改 vob 所有者和 vob 组 它会抛出如下错误 Error No ClearCase group found Error unknown protection styles 您可以查看技术说明 关于在 Windows 上更改 V
  • JSTL 标签如何在 JSF 2.1 中评估以下内容

    我有下面的 Test xhtml 我可以在其中选择 海 空 模式 我不想将所有 4 个页面 Page1 xhtml Page2 xhtml Page3 xhtml Page4 xhtml 加载到 jsf 视图树中 在我的场景中 模式一旦选择
  • Java UTC 毫秒

    试图在java中获取世界时间似乎是如此困难 C 中类似这样的东西 DateTime Now ToUniversalTime 似乎是那么困难的事情 我有代码从较早的日期 也是 utc 中减去当前的 utc 时间来查找时间差 但我似乎不知道如何
  • Rails 将请求参数中的空数组转换为 nils

    我的应用程序中有一个 Backbone 模型 它不是典型的平面对象 它是一个大型嵌套对象 我们将嵌套部分存储在 MySQL 数据库的 TEXT 列中 我想在 Rails API 中处理 JSON 编码 解码 以便从外部看起来您可以 POST
  • PyMongo:当 no_cursor_timeout=True 时光标会发生什么

    看着cursorMongoDB 的文档 我没有看到删除游标的方法 如果我将光标与no cursor timeout属性设置为 True 当我的脚本终止时 即使我还没有到达光标结果的末尾 光标是否也会被删除 Python 使用引用计数进行对象
  • 使用 openpyxl 取消合并 Excel 工作表中的每个单元格

    有没有办法使用 openpyxl 取消合并 Excel 工作表中的每个单元格 不能保证每个或任何单元格都被合并 但基本上我想取消合并单元格 如果它们存在于工作表中 您可以迭代工作表的merged cells属性并使用每一个作为参数unmer
  • 在节点heroku项目上安装gems

    我正在 heroku 上编写一个节点应用程序 该应用程序需要一个 gem compass http compass style org待安装 用于节点罗盘 https github com nathggns node compass 但是
  • 使用 MPI_Scatter 发送矩阵的列

    我正在尝试使用 MPI 编写矩阵向量乘法程序 我试图将矩阵的列发送到单独的进程并在本地计算结果 最后我做了一个MPI Reduce using MPI SUM手术 发送矩阵的行很容易 因为 C 按行优先顺序存储数组 但列则不然 如果您不一一
  • 如何在.Net core应用程序中发布环境特定的应用程序设置?

    我有 3 个特定环境appsettings我的 Net core 应用程序中的文件 in project json我已经设置了publishOptions像这样 根据建议here https stackoverflow com questi
  • 如何从 Node.js 应用程序制作 exe 文件?

    我有一个我编写的节点应用程序 运行如下 node exe app js inputArg 有什么方法可以将其单独打包成 exe 吗 所以我可以做这样的事情吗 App exe inputArg 我有一些方法可以通过使用批处理文件来伪造这个 所
  • 在 WordPress 中选择查询

    我试图在 2 小时内完成此任务 我在数据库中有自定义字段 我想通过元键或元值获取 post id 我正在这样做 post id wpdb gt get var SELECT post id FROM wpdb gt postmeta WHE
  • 如何在C#中使用SqlCommand和SqlDataReader返回Json结果

    我正在尝试使用 SQL 查询SqlCommand我想查看从 SQL Server 数据库返回的完整结果集 然后返回 Json 格式 这是控制器中的代码 public ActionResult GetAllSummary string con
  • C++ libneo4j_client 中的准备语句?

    The neo4j 运行 API https cleishm github io libneo4j client doc latest neo4j client 8h html ae975ef8a6ba72d3cc98dfcc7b96f4f
  • 无法读取未定义的属性“模块”

    我有一个基本的了解Django and JS最近我开始学习Angular js 我编写了显示硬编码的代码json using Angular并失败了 我收到以下错误 Uncaught TypeError Cannot read proper
  • 输出 C# 对象列表 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • Dll注入。带参数执行CreateRemoteThread

    我写的dll注入程序运行得很好 它将 dll 加载到远程进程中并调用一些函数 现在我想将参数传递给该函数 CreateRemoteThread 有 lpParameter 来实现这一点 但是如何在 dll 中获取传递的参数以在函数中使用它
  • 数据库更改后如何刷新 ListView?

    我正在尝试在 Android 应用程序中管理一个简单的列表 列表的内容保存在 SQLite 数据库中 当用户选择并按住特定行时 会出现一个带有 删除 选项的上下文菜单 当他们选择 删除 时 该行将从数据库中删除 但视图不会刷新 当我退出应用