3

私のアプリケーションでは、別のクラスからデータベースに値を挿入しています。これにより、挿入された行の ID が得られます。UI にオブザーバーを登録しました。行が挿入されるたびに、UI コンテンツ オブザーバーが呼び出されます。両方のクラスはまったく異なるため、挿入された行 ID を取得するのが難しいと感じています。それに応じて UI を更新できるように、コンテンツ オブザーバーでこの行 ID を取得する方法はありますか?

PS context.getContentResolver().notifyChange(uri, null); UIで(影響を受けた変更を更新するために)影響を与えたいので、私の解決策ではありません。

4

2 に答える 2

2

新しい行を挿入するときは、手動でnotifyChangeを呼び出す必要があります。

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

行を挿入したコードは、新しい行 ID にアクセスできる必要があり、notifyChange に渡す URI を構築できる必要があります。notify change が呼び出されると、すべて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 に答える