gpt4 book ai didi

android - 如果数据库值更改,如何更新 ListView?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:03 26 4
gpt4 key购买 nike

目前我在做以下事情:

1) 数据库链接到ListView:

String[] from = new String[]{DbAdapter.KEY_TITLE, 
DbAdapter.KEY_DISPLAYED_VALUE,
DbAdapter.KEY_FAVORITE};
int[] to = new int[]{R.id.name, R.id.time, R.id.icon};
items = new SimpleCursorAdapter(this, R.layout.row, itemsCursor, from, to);

2) KEY_DISPLAYED_VALUE 在数据库中每 2 秒更改一次。然后调用 items.notifyDataSetChanged()。但是屏幕上的数据没有更新(R.id.time 当前是 TextView,一旦此代码生效,将是 TextSwitcher)。

数据库更新为 execSQL .

最佳答案

那是因为光标中的数据没有改变。在您的情况下,最简单的事情是每次更新数据库中的某些值时调用一个新查询并更改列表的光标(可能有一种通过广播或类似方式通知的方式)。另一种方法是通过查询在光标上注册通知 uri(请参阅 android 的记事本项目示例,了解如何制作内容提供程序,特别是插入方法。

然而,通过自动查询的方式(记事本内容提供商方式),您将收到每个查询的通知,从而刷新每个项目的列表,您说数据库每 2 秒更新一次可能太频繁了,您可能会阻止ui 线程使您的应用程序无响应。所以我建议管理您自己的刷新时间(我认为每 5 秒一次就可以了)。

希望这对您有所帮助,编码愉快。

关于android - 如果数据库值更改,如何更新 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6088779/

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