2012-03-14 7 views
1

私は、リストビューとしてデータベースからデータを表示するアプリケーションを作ろうとしています。Android differentsツールの使用

ここに特定のことがあります:データベースを変更したイベントで、リストビューが自動的に更新され、データベースに「リスナー」があるようにします。リストビューを自動的にアップロードします。

私が読んだところでは、loadManager、カーソル、フラグメントを使用する必要があります(前バージョンの3.0ではloadManagerを使用できます)。しかし、初心者の方では難しいですわかる。誰かが(私は、コードのためだけに説明を求めていないよ:))一緒に

おかげで、これらのツールの使用方法を深く私を説明しようとすることができれば

私は思っていました!

編集:私が新しいと私は非常に失われているように、私はもう少し説明が必要です。

手順は次のとおりです。 1)アクティビティは、onCreate()でlistView、カスタムCursorAdapterおよびカーソルを作成します。それでもonCreateでは、カーソルはSQLiteDatabaseオブジェクトの標準要求と一緒に送られます。次に、アダプタへのカーソル、およびlistViewへのアダプタに影響を与えます。

2)挿入イベントが発生すると、SQLiteDatabaseの挿入関数を使用して、カーソルの要求の結果を取得し、リストのCursorAdapterに渡します(リストビューを自動的に更新しますか?)

3)私のcustomAdapterの井戸について...私がソース、例、チュートリアルを読むほど、私は失われます。私はbindView()とnewView()をオーバーライドする必要があることを理解しました。実際に目的を達成していないだけでなく、アダプタのデータ型をたくさん作成したいのです...

私は本当に賢い、私は本当にしようと、私はまだ迷ってしまいました:(

答えて

0

あなたのListViewにCursorAdapterを使用している場合ではない、それはすべてがあなたのために行うのですhttp://developer.android.com/reference/android/widget/CursorAdapter.html

編集:!申し訳ありませんが、私はより多くを説明する必要がありますI。すぐにそれを読んで、私はあなたが既にListViewを持っていて、更新したかったと思っていた。

データベースからデータを取得したら、 rからContentResolver.query、またはSQLiteDatabase.queryなどを使用すると、カーソルが戻されます。これをCursorAdapterで使用する必要があります。

ListView内のカーソルからデータを使用するには、CursorAdapterをサブクラス化してbindViewをオーバーライドする必要があります(どの列があり、どのフィールドがどのビューにマップされているかわからないため)。 CursorAdapterの作成時にFLAG_REGISTER_CONTENT_OBSERVERフラグを使用すると、カーソル内のデータが更新されるたびにリストが更新されます。

+0

はい...なぜ私はそれを逃しましたか?どうもありがとう。 –

+0

それでは、イベントから自分のアクティビティにカーソルを置いてデータベースを操作し、このカーソルにリンクされたカスタムのcursorAdapterを持って、カーソルがデータベースを更新するたびに自分自身を更新します。 –

+0

実際、私はこれについて考えるようになりました。データベースをラップしたコンテンツプロバイダで試しただけですが、コンテンツプロバイダは、誰かが更新したときにカーソルを再クエリに通知したものでした。だから、私が言ったことは、SQLiteDatabaseを真っ直ぐ進むとうまくいかないかもしれません。コンテンツプロバイダーの例:http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NotePadProvider.html - c.setNotificationUriおよびgetContext()。getContentResolver()を参照してください。notifyChangeコール。 – Khasm

関連する問題