我正在使用自定义ListView(帖子)在CursorAdapter中显示数据。
有些帖子没有评论(我想显示有关信息),并且数据在不同的光标中(我无法加入表格,因为我按帖子ID分组以防止在ListView中重复)。

当前在bindView中,我正在遍历注释Cursor,检查帖子ID是否等于当前视图的ID。

这个循环会减慢UI并应在其他线程中完成吗? (这增加了在回收视图时将数据显示在正确位置的复杂性)

有更好的策略吗?我想到了CursorJoiner,但我看不到如何将这两个游标结合在一起。

编辑:

例如,这在我的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);
    }
}

最佳答案

我最终使用了CursorJoinerMatrixCursor,更多关于此解决方案的信息-http://asyncindicator.blogspot.co.il/2012/12/cursorjoiner-and-matrixcursor.html

09-30 11:15