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);
}
}