0

我正在尝试使用游标从请求的列中获取行的值,但我不知道该怎么做, cursor.getLong(?) 中的索引是什么,这是我的代码,但我不知道它是如何工作的在职的?请帮忙。

private Message cursorToMessage(Cursor cursor) {
    Message message = new Message();
    message.setId(cursor.getLong(0));
     message.setmessage(cursor.getString(1));
    message.setthreadid(cursor.getLong(0));
    return message;
  }
4

1 回答 1

1

索引是查询投影中列的位置。

如果你在你的投影中有你想要列id,message,threadid那么你会做

long id = cursor.getLong(0);
String message = cursor.getString(1);
long threadId = cursor.getLong(2);

获取列以便您不混淆索引的正确方法是这样做

cursor.getLong(cursor.getColumnIndex("id"));

我不知道你是否这样做,但你也应该检查光标是否有任何东西。

if(cursor != null && cursor.moveToFirst()){
   message.setId(cursor.getLong(0));
   message.setmessage(cursor.getString(1));
   message.setthreadid(cursor.getLong(0));
}
于 2013-09-10T18:35:27.500 回答