Intereting Posts

Получить значение поля с помощью курсора

Я создаю приложение, и у меня проблемы с Cursor . У меня есть SQLiteDatabase которая возвращает мне Cursor когда я пытаюсь получить значения с помощью этой функции:

 public Cursor fetchOption(long rowId) throws SQLException { Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } 

Я не знаю, как получить значение поля в Cursor . Если я сделаю это так:

 String a = mOptionDb.fetchOption(0).getColumnName(0).toString(); String b = mOptionDb.fetchOption(0).getColumnName(1).toString(); String c = mOptionDb.fetchOption(0).getColumnName(2).toString(); 

Я получаю только имя столбцов ( _id, title, body ), но не значения. Любые предложения о том, как достичь этого?

Solutions Collecting From Web of "Получить значение поля с помощью курсора"

Я думаю, вы можете забыть о проверке нулевого.

Вместо этого проверьте, есть ли данные, а затем доступ к столбцам с помощью курсора:

 Cursor cursor = fetchOption(0); if (cursor.moveToFirst()) // data? System.out.println(cursor.getString(cursor.getColumnIndex("title")); cursor.close(); // that's important too, otherwise you're gonna leak cursors 

Возможно, имеет смысл прочитать учебник по Android. Учебник по блокноту, похоже, соответствует законопроекту: http://developer.android.com/guide/tutorials/notepad/index.html

Вы можете использовать методы get* для Cursor для получения значений из результата:

 long id = cursor.getLong(cursor.getColumnIndex("_id")); long title = cursor.getString(cursor.getColumnIndex("title")); ... 

Очевидно, что лучше использовать константы (часто предоставляемые ContentProviders) вместо вызовов getColumnIndex с жестко закодированными строками.

Вы можете использовать этот механизм.

 Cursor record=db.test(finalDate); if(record.getCount()!=0){ if(record.moveToFirst()){ do{ Imgid1=record.getString(record.getColumnIndex(Database.PHOTO)); }while(record.moveToNext()); } record.close(); } в Cursor record=db.test(finalDate); if(record.getCount()!=0){ if(record.moveToFirst()){ do{ Imgid1=record.getString(record.getColumnIndex(Database.PHOTO)); }while(record.moveToNext()); } record.close(); }