【发布时间】:2019-05-10 08:54:19
【问题描述】:
这个函数一直返回一个空字符串。
public String getRandomWord() {
int id = (int)(Math.random())*(numberOfRows())+1;
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select word from words where id="+id+"", null );
String s = "";
if (res.moveToFirst())
s = res.getString(res.getColumnIndex("word"));
res.close();
return s;
}
【问题讨论】:
-
如果确实如此,那么
res.moveToFirst()是false,这意味着结果为空。这是您可以/应该/必须/必须使用日志记录或调试器检查的内容。 -
要么
res.moveToFirst()为假,要么res.getString返回一个空白字符串。 -
检查你声明
id的大括号!不管numberOfRows()返回什么 id 永远是1!你想要的可能是int id = (int)(Math.random()*numberOfRows())+1;