1

私は単純な問題だと思っていましたが、徹底的な検索の後、解決策が見つかりません:

リンゴとオレンジという 2 つの異なるデータ型を持つ 2 つのデータ ソースがあります。共通の唯一の列は「datePicked」です。別々のデータベースにクエリを実行し、「datePicked」で並べ替えられ、グループ化された同じリストにリンゴとオレンジの両方を表示したいと考えています。

MergeAdapter を使用するための提案がいくつか見られます。ただし、何かが欠けていない限り、MergeAdapter は単に 2 つのアダプターを連結するだけで、実際にはそれらをマージしません。同様に、MatrixCursor または MergeCursor を使用して単一の統合カーソルを作成し、そのためのアダプターを作成するという提案を見てきました。どちらも良い解決策ではないようです。MergeCursor はカーソルを連結するためだけに表示されますが、MatrixCursor は行ごとにカーソルの構築を開始するために両方のデータセットを反復処理する必要があるように見えます。これらが受け入れられる解決策であったとしても、スキーマが異なれば画面上で異なるレイアウトが必要になるという問題がまだ残っています。基礎となるデータ型に基づいて異なるレイアウトをどのように膨らませますか?

だから私は困惑しており、助けていただければ幸いです。データを連結するだけでなくインターリーブする真のマージ アダプタはありますか? そうでない場合、カーソルが指している特定の行に対して実行されるビジネスロジックに基づいて、レイアウトを条件付きでマップおよびインフレートするアダプタを作成する方法はありますか?

明らかな何かが欠けている場合は申し訳ありません。

ありがとう、

4

1 に答える 1

3

私自身の質問に答えるために、両方のカーソルをステップ実行するマージソートリストタイプのアルゴリズムを使用してマトリックスカーソルを構築し、if ステートメントで newView() メソッドをオーバーライドして行レイアウトを条件付きで膨張させることが唯一の実行可能な解決策であるようです. 詳細が判明したら、興味のある人のためにコードを投稿します。

于 2012-07-20T02:13:27.353 に答える