在CursorAdapter.bindView中迭代Cursor

时间:2012-11-29 17:06:08

标签: android android-cursoradapter android-cursor

我在ListView中使用自定义CursorAdapter(帖子)显示数据。 一些帖子可能有评论(我想显示信息)和数据是在一个不同的游标(我不能加入表,因为我按照帖子ID分组,以防止ListView中的重复。

目前在bindView我正在迭代评论Cursor,检查帖子ID是否等于当前视图。

这个循环可以减慢用户界面,应该在不同的线程中完成吗? (这增加了在回收视图时将数据显示在正确位置的复杂性)

这样做有更好的策略吗?我想过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);
    }
}

1 个答案:

答案 0 :(得分:1)

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