将数据添加到数据库游标

时间:2010-01-10 19:53:03

标签: android

也许我会以错误的方式解决这个问题,但如果是这样,请指正。 情况就是这样:我有一个查询,它返回存储在数据库中的铃声的URI字符串。

我正在尝试使用振铃“标题”向此光标添加“列”(因为这可以在我的程序之外更改)。

我可以成功使用RingtoneManager来获取标题,但我无法弄清楚如何将此“列”添加到游标数据中供以后使用。

这是我到目前为止所做的:

if (cursor != null) {  
    cursor.moveToFirst();  
    do {  
        String ringerTitle =   getRingerTitle(cursor.getString(cursor.getColumnIndex(PoolDbAdapter.KEY_RINGER)));  

        // How can I add ringerTitle to a new column here?

    } while (cursor.moveToNext());   
}

3 个答案:

答案 0 :(得分:4)

您不能以这种方式修改现有的Cursor。您需要使用您在一开始就查找的数据创建Cursor

但更有可能的是,您不需要修改Cursor,而是使用Cursor的任何内容都必须更加智能。例如,如果您的问题是您无法在SimpleCursorAdapter中使用计算列,则需要切换到CursorAdapter并覆盖bindView()以获得所需的智能。

答案 1 :(得分:1)

我还没有尝试过(我会在这里更新)但是,也许以下步骤可行:

为了论证,我们调用原始游标baseCursor

  1. 使用MatrixCursor创建要添加的新列(让我们将其命名为newColumnCursor)
  2. 然后使用baseCursor和newColumnCursor创建一个Cursor []作为元素。
  3. 将该数组传递给MergeCursor

答案 2 :(得分:0)

请看一下这个主题:

Writing to cursor: