На самом деле отображает значение моей базы данных SQL в моем приложении, а не местоположение - PullRequest
0 голосов
/ 23 января 2012

По сути, я хочу вернуть фактическое значение в базе данных, а не положение, на которое в данный момент указывается. Изучив это, метод 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 ]

0 голосов
/ 24 января 2012
mCursor.getString("title");

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

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

0 голосов
/ 24 января 2012

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

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

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

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

mCursor.getString(mCursor.getColumnIndex("title"));
...