Как получить URI вставленной строки в моем обозревателе контента? - PullRequest
3 голосов
/ 08 декабря 2011

В моем приложении я вставляю значения в базу данных из другого класса, который дает мне идентификатор вставленной строки.Я зарегистрировал наблюдателя в своем пользовательском интерфейсе, и всякий раз, когда вставляется какая-либо строка, вызывается мой обозреватель содержимого пользовательского интерфейса.Оба класса совершенно разные, поэтому мне трудно получить вставленный идентификатор строки.Есть ли способ получить этот идентификатор строки в моем обозревателе контента, чтобы я мог соответствующим образом обновить свой интерфейс?

PS context.getContentResolver (). NotifyChange (uri, null);это не мое решение, так как я хочу, чтобы в пользовательском интерфейсе было выполнено (для обновления произведенного изменения).

Ответы [ 2 ]

2 голосов
/ 25 октября 2012

Теперь в Android API 16 есть возможность получить URI модифицированной строки в методе OnChage через версию onChange, которая принимает URI в качестве параметра. Вы можете найти более подробную информацию об этом в документации Content Observer. http://developer.android.com/reference/android/database/ContentObserver.html

Для более старых версий API я не уверен, есть ли решение (без добавления дополнительной логики, такой как реализация флагов в вашей базе данных). Я задал этот вопрос, касающийся, в частности, старого API на « измененный URI в ContentObserver Onchange в более старых версиях API » и не получил никакого ответа = (

2 голосов
/ 08 декабря 2011

Когда вы вставляете новую строку, вы должны вручную вызвать notifyChange :

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

Код, который вставил строку, должен иметь доступ к новому rowid и должен иметь возможность создать URI для передачи в notifyChange. Когда вызывается уведомление об изменении, это должно привести к обновлению всех ContentObservers.

...