Я хотел бы понять строку в фрагменте кода, который я видел:
public Cursor fetchMessageByMessageId(String msgId) {
Cursor mCursor =
mDb.query(true, DATABASE_MESSAGES_TABLE, new String[] { KEY_ROWID,
KEY_CONVERSATION_ID, KEY_MSG_ID, KEY_TITLE, KEY_BODY,
KEY_IS_REPLY, KEY_MEDIA_LOC, KEY_URL, KEY_TIMESTAMP },
KEY_MSG_ID + "='" + msgId + "'", null, null, null, null, null);
**if (mCursor != null) {
mCursor.moveToFirst();
}**
return mCursor;
}
Следующие строки кода между **
Нужна ли эта строка? Сегодня я потратил 2 часа на отладку, чтобы выяснить, почему мои данные отсутствовали, когда я позвонил примерно так:
while(mCursor.moveTonext())
используйте курсор, чтобы получить некоторые данные, и в итоге всегда пропускали первые данные. Поэтому я посмотрел на другие части кода и понял, что поместил весь курсор в адаптер, чтобы жирная линия выше не имела никакого эффекта. После удаления этих строк кода все было хорошо!
Короче говоря, если я просто хочу курсор с 1 результатом или многими, нужно ли вызывать жирный оператор выше? Спасибо!