我正在尝试从数据库中检索前5个单词并将其设置为按钮的文本,这是我的代码
String [] deal;
String text,s1,s2,s3,s4,s5;
text=edt.getText().toString();
deal=db.getAllItemFilter(text);
s1=deal[0];
s2=deal[0];
s3=deal[0];
s4=deal[0];
s5=deal[0];
sug1.setText(s1);
sug2.setText(s2);
sug3.setText(s3);
sug4.setText(s4);
sug5.setText(s5);
对于数据库查询我正在使用此代码,但它无法正常工作
public String[] getAllItemFilter(String text)
{
String [] columns= new String[]{word};
Cursor cursor = this.ourdatabase.query(database_table, columns, " word like 'text%' ", null, null, null, null);
String [] deal = new String[cursor.getCount()];
int iword = cursor.getColumnIndex(word);
int i=0;
for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext())
{
deal[i]=cursor.getString(iword);
i++;
if(i==5)
break;
}
return deal;
}
任何人都可以帮我从数据库中获得前5条建议。谢谢提前
答案 0 :(得分:0)
首先应在SQL查询结束时设置“LIMIT = 5”而不是循环限制,这样可以节省资源。然后你可以用%word%替换单词%来匹配单词开头。
答案 1 :(得分:0)
您的查询不正确。正如您设置的那样,每次都在寻找“text *”(您忘记格式化查询,因此变量用作变量)。
如果你想要以提供的文字
,请将光标更改为我在下面显示的内容:Cursor cursor = this.ourdatabase.query(database_table, columns, " word like '" + text + "%' ", null, null, null, null);
如果您只想要包含提供的文字,请将其更改为:
Cursor cursor = this.ourdatabase.query(database_table, columns, " word like '%" + text + "%' ", null, null, null, null);