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