我试图过滤buttonclick上的listview,但我的数据库查询返回一个空的光标。我找不到问题所在。有人知道为什么游标返回空吗?android sqlite:光标从数据库查询返回空,但不应该
这里是我的代码:
private void initSearch() {
searchText = (EditText) findViewById(R.id.search_edit_text);
ImageButton searchEntry = (ImageButton) findViewById(R.id.button_search_entry);
searchEntry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.startAnimation(buttonAnimation);
String catchword = searchText.toString();
if (catchword.equals("")) {
Toast.makeText(SearchActivity.this, noCatchword, Toast.LENGTH_LONG).show();
} else {
Cursor match = myDb.getWordMatches(catchword); //cursor is empty
cursorAdapter.swapCursor(match);
cursorAdapter.notifyDataSetChanged();
}
}
});
}
这里是数据库的方法:
public Cursor getWordMatches(String query) {
//Cursor c = database.rawQuery("SELECT * FROM "+TABLE_NAME+ " WHERE "+COL_HEAD+ " = '%" +query+"%' OR " +COL_TEXT+ " = '%"+query+"%'", null);
Cursor c = database.rawQuery("SELECT * FROM " + TABLE_NAME+ " WHERE "+COL_HEAD+ " LIKE ? OR "+COL_TEXT+ " LIKE ?", new String[]{query});
if(c != null){
c.moveToFirst();
}
return c;
}
我都试过查询,你可以看到,但都返回一个空指针。 行正确插入我的数据库,因为一切正常,所以这不能成为我的问题的原因。
在此先感谢!
尝试'“%” +查询+“%”'在'selectionArgs' – pskink
你尝试手动直接执行SQL语句到你的数据库的命令接口? – user1506104
@pskink:仍然返回空游标 –