我正在尝试使用游标从请求的列获取行的值但是我没有得到它怎么做,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;
}
答案 0 :(得分: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));
}