0

私はhttp://developer.android.com/resources/articles/live-folders.htmlhttp://developer.android.com/reference/android/provider/LiveFolders.htmlhttps://androidを読んでいます.googlesource.com/platform/packages/apps/Contacts/+/donut-release/src/com/android/contacts/ContactsLiveFolders.java

しかし、アプリ (リストビュー) をライブ フォルダーに拡張したいと考えています。ぴったりでしょう。listadapter をカーソルとして使用するにはどうすればよいですか? これは可能ですか?それを過ぎて、Listadapter が提供する同様の getView を設定するにはどうすればよいですか? 私のlistadapterが継承するBaseadapterは、livefolderが必要とするカーソルになることができますか?

4

1 に答える 1

0

はい、可能です。ただし、ContentProvider が必要です。通常、ContentProvider は何らかの SQL データベースに支えられていますが、必須ではありません。カーソルとして返す限り、任意のソースから ContentProvider の query() メソッドでデータを取得できます。データベース カーソルがない場合は、代わりにデータを MatrixCursor にラップして、MatrixCursor を返すことができます。このような query() メソッドの実装があり、MatrixCursor を返すことで機能します。

ContentProvider をデータベース クエリでバックアップする必要があるというのはよくある誤解です。特定の型の引数を取り、特定の型を返す 4 つの異なる (CRUD) メソッドを指定するコントラクトとして ContentProvider を理解することをお勧めします。

さらに、これら 4 つのメソッド内で異なるクエリを使用し、Uri に応じてそれらを切り替えることができます。

ContentProvider クラスで指定された契約に従う限り、ContentProvider は任意のデータソースを使用し、そのデータソースに対して任意の操作を実行できます。それは彼らを非常に強力にします。

于 2012-05-12T21:42:09.183 に答える