我创建了一个带有教程的数据库,我可以添加项目,删除等。我想在其中找到项目并将结果带到cretad listview。到目前为止:
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, todoItems));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
hornot info = new hornot(this);
info.open();
Cursor c = info.getSearched("108");
if (c.moveToFirst())
{
do{
todoItems.add(c.getString(0) + " " + c.getString(1) + " " + c.getString(2));
}while (c.moveToNext());
}
if (todoItems.size() > 0)
{
lv.setAdapter(new ArrayAdapter<String>(sqlsearch.this,android.R.layout.simple_list_item_1, todoItems));
}
info.close();
}
在我的数据库中,getSearched()函数如下所示:
public Cursor getSearched(String qq) {
String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS};
return ourDatabase.query(DATABASE_TABLE, columns, qq , null, null, null, null);
}
如您所见,我想选择包含qq的行。但是我想选择KEY_ROWID等于108的行。此时我将完整的表放入列表视图中,而不仅仅是想要的行。这段代码有什么问题?
提前致谢
答案 0 :(得分:1)
我不知道我是否理解你想要的东西,但如果你想用KEY_ROWID
108获取记录,请使用查询方法的第三个参数(即WHERE
选择条款查询):
public Cursor getSearched(String qq) {
String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS};
return ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + " = " + qq , null, null, null, null);
}