2011-01-09 12 views
13

カーソルとカスタムSimpleCursorAdapterの両方を使用するときに、ListViewでセクションを生成する方法については、ここで少し紛失します。SimpleCursorAdapter with Androidでのセクション

そこにあるドキュメントの多くは、getView()などを使用して参照するか、いくつかのアダプタを作成してセクションヘッダーを追加することで参照されます。

しかし、すべてが

などBaseAdapters、ListAdapters、およびArrayAdaptersに基づいているように見えるこれらは、誰もが以前に同様のものを扱っていますか?

もしそうでない場合は、これを行う方法に関するヒントを教えてください。 サイモン

答えて

9

おかげで私はthisチュートリアルに従い、それはかなりうまくいきました。このコードでは、Adapterの任意の種類を使用することができますので、ArrayAdapterまたはCursorAdapterでうまく動作します。

+0

ありがとうございました。基本的に私の既存のカスタムアダプタへのラッパーとして、SeparatedListAdapterを使用する必要があるという事実を頭の中に入れなければなりませんでした。 – Simon

9

CursorAdapterを使用している場合は、SectionCursorAdapterを使用できます。

+0

これは、SimpleCursorAdaptersでうまくいき、ListViewのアルファベット順のセクションを持つようになりました。これは私が思ったよりもはるかに多くの作業だった、私はSimpleCursorAdapterがそれをシンプルにしてくれたと思う! – georgiecasey

+0

ヘッダーを計算するためにすべての項目を反復処理する必要があるので、アイテムの長いリストを持つデータベースSimpleCursorAdapterでは効率的ではありません。 GROUP BYクエリでカーソルが返された場合、現在の項目のヘッダー(グループ化された値)と前の項目と次の項目のヘッダー(グループ化された値)を比較して、新しいセクションがあるかどうかを判断する方がはるかに優れています。 –

+0

セクションの計算にAlphabetIndexerを使用することができます。 – ycagri

2

アクティブ開発中のもう一つの素晴らしいものはSectionCursorAdapterであり、それはgradleに対応しています。また、RecyclerViewが公式にリリースされたときにRecyclerViewをサポートするように更新されることを約束しました。あなたはそれについてのブログの投稿をチェックアウトすることもできますToastDroid

関連する問題