1

ListViewカスタムCursorAdapter(投稿)でデータを表示しています。一部の投稿にはコメントがなく(情報を表示したい)、データは別のカーソルにあります(の重複を防ぐために投稿IDでグループ化しているため、テーブルに参加できませんListView)。

現在、投稿IDが現在のビューと等しいかどうかを確認するbindViewコメントを繰り返し処理しています。Cursor

このループは UI を遅くし、別のスレッドで実行する必要がありますか? (これにより、ビューが再利用されるため、正しい場所にデータを表示する複雑さが増します)

これを行うためのより良い戦略はありますか? 考えてみましCursorJoinerたが、これらの 2 つのカーソルを結合する方法がわかりません。

編集:

これは、たとえば私のCurosrAdapter実装です。

@Override
public void bindView(View view, final Context context, Cursor cursor) {
...
...
if (mCommentsCursor != null) {
    mCommentsCursor.moveToPosition(-1);

    int count = 0;
    while (mCommentsCursor.moveToNext()) {
        if (mCommentsCursor.getInt(mCommentsCursor.getColumnIndex(
                COLUMN_COMMENT_POST_ID)) == postId) {

            count++;
        }
    }

    if (count > 0) {
        com.setText(Integer.toString(count) + " comments");
    } else {
        com.setText(null);
    }
}
4

1 に答える 1

1

私は最終的にCursorJoinerandを使用しましたMatrixCursor。ここで解決策について詳しく説明します- http://asyncindicator.blogspot.co.il/2012/12/cursorjoiner-and-matrixcursor.html

于 2012-12-02T21:28:24.677 に答える