我的应用程序中有一个返回游标的函数。游标可能会返回多行数据,并始终从两个连接的表中返回5列数据。第1-4列永远不会改变。第5列可以根据用户操作进行更改。当第5列从任何行更改发生更改时,如何注册内容观察者以通知我。这是一个例子。在我的主要活动中,我打电话给
Cursor cursor = db.getNotifiedCursor();
这给了我5列数据。然后我拿这5列数据并使用游标适配器将每一行作为列表项放在ListView中。
当用户未点击列表项时,该项目的背景为一种颜色。点击列表项后,它是另一种颜色。这只是为了帮助他们区分已经查看过的项目,而不是查看过的项目。
第5列可以为null,零(0)或一(1)。如果它为null,那么它不在我的ListView中。如果它为零,则在我的列表视图中使用第一个背景颜色。如果它是1,那么它在我的列表视图中具有第二种背景颜色。
我解决这个问题的原始方法是使用一个Handler,它每750毫秒无限循环一次,用正确的颜色重新加载列表视图中的数据。我希望在数据发生变化时只调用该处理程序,因为循环版本看起来有点像hackish。