3

在我的应用程序中,我在数据库中插入来自不同类的值,这给了我插入行的 id。我已经在我的 UI 中注册了它的观察者,每当插入任何行时,都会调用我的 UI 内容观察者。这两个类完全不同,所以我发现很难插入行 ID。有什么方法可以在我的内容观察器中获取此行 ID,以便我可以相应地更新我的 UI?

PS context.getContentResolver().notifyChange(uri, null); 不是我的解决方案,因为我希望在 UI 上生效(更新生效的更改)。

4

2 回答 2

2

当您插入新行时,您必须手动调用notifyChange

context.getContentResolver().notifyChange(uri, null);

插入行的代码应该可以访问新的 rowid,并且应该能够构造 URI 以传递给 notifyChange。当调用通知更改时,它应该导致所有ContentObservers更新。

于 2011-12-08T15:08:42.190 回答
2

现在在 android api 16 中,有可能通过将 URI 作为参数的 onChange 版本在 OnChage 方法中获取修改行的 URI。您可以在 Content Observer 文档http://developer.android.com/reference/android/database/ContentObserver.html中找到有关它的更多详细信息

对于较旧的 api 版本,我不确定是否有解决方案(没有添加更多逻辑,例如在数据库上实现标志)。我特别问了关于“在旧版本的 API 上更改 ContentObserver Onchange 上的 uri ”的旧 api 的问题,但没有得到任何答案 =(

于 2012-10-25T14:42:10.003 回答