2011-12-30 2 views
3

Я хочу поместить содержимое таблицы в строку, если выбран элемент listview.SQLite Query to String

Мой фактический запрос

public Cursor webUrlQuery() { 
    String webUrlTmp = "select weburl FROM stations WHERE name=" + "'" + name + "'"; 
    return database.rawQuery(webUrlTmp, null); 
} 

работы. Но если я регистрирую его LogCat через

Log.d(TAG, "webUrl = " + webUrlQuery()); 

или

Log.d(TAG, "webUrl = " + webUrlQuery().toString()); 

я получил что-то вроде этого:

12-30 23: 25: 15.828: D/StationsActivity (10576) : streamUrl = [email protected]0

Как я могу получить строку, которую я могу использовать? Кажется, что метод, cursor.toString() не работает.

ответ

1

Это зависит от того, сколько результатов вы ожидаете. Если вы ожидаете только одного результата, вы можете использовать примерно следующее:

Cursor result = webUrlQuery(); 
result.moveToFirst(); 
String url = result.getString(result.getColumnIndex("weburl")); 
Log.d(TAG, "webUrl = " + url); 

Удачи вам!

+0

Да. Благодарю. Это именно то, что я хочу! – Leandros

1

Cursor.toString() работает отлично - это возвращает строковое представление объекта Cursor. Вы предположительно хотите Cursor.getString() (и я считаю, что вам сначала нужно будет использовать Cursor.moveToFirst(), чтобы указать на первую возвращенную строку).

+0

Работы тоже. Благодаря! – Leandros

1

Почему вы пытаетесь зарегистрировать объект Cursor? Если вы хотите распечатать запрос, вам нужно использовать webUrlTmp.

Кстати, вы действительно должны рассмотреть возможность привязки параметров запроса.

+0

У меня есть listview, с определенными элементами (из моего qslite db). Если на элементе выбран, я хочу установить строку в один элемент db. В этом примере выше URL. Logcat предназначен только для тестирования. :) Но если я logcat, то webUrlTmp получает только null. Зачем? Если я использую sqlite на своем устройстве (в adb), я получил правильный URL-адрес. – Leandros