На самом деле отображает значение моей базы данных 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"));