此函数不断返回空白字符串。
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;
}
答案 0 :(得分:2)
返回空字符串的原因是false
为s
(因此您的SQL查询结果为空),并且if块将永远不会运行,因此{{1} }始终保持其初始值""
。
另一个原因可能是表达式为true
,但是res.getString(res.getColumnIndex("word"))
返回了空字符串。
答案 1 :(得分:0)
如果您想要一个随机行(单词),请尝试使用:-
public String getRandomWord() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select word from words order by random() limit 1", null );
String s = "";
if (res.moveToFirst())
s = res.getString(res.getColumnIndex("word"));
res.close();
return s;
}
这确实假定表中有行,如果没有,那么您仍然会得到空白结果。