На самом деле отображает значение моей базы данных SQL в моем приложении, а не местоположение

По сути, я хочу вернуть фактическое значение в базе данных, а не положение, на которое в данный момент указывается. Изучив это, метод getString, похоже, мне нужен, но, похоже, он не работает. Вот код:

public Cursor fetchNote(long rowId) throws SQLException {

    Cursor mCursor =

        mDb.query(true, DATABASE_TABLE, new String[] {KEY_TITLE}, KEY_ROWID + "=" + rowId, null,
                null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();

    }

    return mCursor;

Так что это мой довольно стандартный запрос, который должен получить для меня результат (то есть позицию моего mCursor). Теперь скажите, что значением является "Фред", я хочу показать это в своем заявлении. Это код, который я имею в моей деятельности:

TextView currentName = (TextView) findViewById(R.id.currentName);
        String me = myDatabaseHelper.fetchNote(1).toString();
        currentName.setText(me);

Теперь, когда я запускаю это и нажимаю на кнопку, у которой есть слушатель для этого, он показывает следующее android.database.sqlite.SQLiteCursor@44f78c00 как я отчасти ожидаю, но я просто не могу заставить его показать мне чертову ценность. Я думаю, что мне нужно включить mCursor.getString(mCursor.getColumnIndex("title")); или что-то подобное в моем запросе, но он возвращает значение mCursor на данный момент, есть ли отдельный метод, который я должен построить, чтобы вернуть индекс? Извините, если это объяснимо, я просто в некотором замешательстве!

Если вам нужно больше кода / дополнительной информации, дайте мне знать, заранее спасибо всем, кто поможет мне с этим.

2 ответа

mCursor.getString("title");

должен вернуть заголовок в курсоре.

Если вы хотите индекс, mCursor.getColumnIndex("title") должно быть достаточно.

Курсор представляет собой всю структуру данных с вашей информацией. Предполагая, что вы выполнили запрос и загрузили курсор, вам нужно использовать одну из функций курсоров для вывода текущей строки.

Запуск toString() для всего курсора - это вывод, который вы видите.

На примерах, которые я вижу в Интернете, я не вижу, чтобы они говорили return mCursor... они просто говорят, что return;

Также попробуйте следующее:

mCursor.getString(mCursor.getColumnIndex("title"));
Другие вопросы по тегам