我正在使用自定义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);
}
}
最佳答案
我最终使用了CursorJoiner
和MatrixCursor
,更多关于此解决方案的信息-http://asyncindicator.blogspot.co.il/2012/12/cursorjoiner-and-matrixcursor.html