通过在给定索引处添加项目来手动更新游标

时间:2013-03-01 08:52:52

标签: android android-cursoradapter android-cursor android-cursorloader

我想将一个项目(甚至是null)插入到特定索引处的游标中。

例如,我需要显示5行信息,但是我的查询会给我一个只有3条记录的光标,因此我需要显示另外两列(假设第二行和第四行)为“否”信息“。视图逻辑已经存在,它接受一个游标并通过检查该索引处的项目来完成剩下的工作,如果在该索引处找到null,则显示“无可用信息”。所以现在,当我的光标中记录少于5条记录时,我必须在其中包含第二个和第四个索引,并且应该将其发送到视图中。

但经过一些初步研究发现,没有这种方法可以将光标插入特定索引。任何人对此“手动更新光标”有任何想法吗?

2 个答案:

答案 0 :(得分:0)

AFAIK无法以这种方式更新游标。

我建议更改列表以运行ArrayListAdapter,然后将返回的数据从Cursor转换为ArrayList。

这应该允许您以您提到的方式操作ArrayList。

答案 1 :(得分:0)

你不能改变光标(除非你创建一个MatrixCursor并复制内容 - 不好的做法,因为光标真的应该反映数据,而不是显示细节)。

你能做的就是修改你的CursorAdapter:

/** Returns at least MIN_ITEM */
@Override
public int getCount() {
    return Math.min(MIN_ITEM, super.getCount());
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    if (cursor.isAfterLast()) {
        // Bind 'No information available' to your view
    } else {
        // Your current implementation
    }
}