将SQLite查询转换为字符串

3
如果选择了列表视图项,我希望将表格内容放入字符串中。
我的实际查询:
    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 = android.database.sqlite.SQLiteCursor@4132fce0

我该如何获取一个可用的字符串? 似乎方法 cursor.toString() 不起作用。
3个回答

1

Cursor.toString() 运行得非常好 - 它返回了 Cursor 对象的字符串表示形式。你可能想要使用 Cursor.getString()(我相信你首先需要使用 Cursor.moveToFirst() 将光标指向第一行)。


1

你为什么要尝试logcat Cursor对象?如果你想打印查询结果,你需要使用webUrlTmp

顺便说一下,你应该考虑绑定你的查询参数。


我有一个listview,其中包含某些项(来自我的qslite db)。如果选择了一项,我想将一个字符串设置为一个db项。在上面的示例中是一个url。Logcat仅用于测试。 :) 但是,如果我logcat webUrlTmp,则只会得到null。为什么?如果我在设备上使用sqlite(在adb中),我得到了正确的url。 - Leandros

1

这取决于你期望得到多少结果。如果你只期望一个结果,你可以使用类似以下的代码:

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

祝你好运!


是的,谢谢。这正是我想要的! - Leandros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接