我試圖過濾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:仍然返回空遊標 –