I'm trying to filter a listview on buttonclick but my database query returns an empty cursor. I can't find where the problem is. Does someone know why the cursor returns empty?
Here is my code:
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();
}
}
});
}
Here is the database method:
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;
}
I've tried both queries as you can see but both return an empty cursor. The rows are correctly inserted in my database as everything else works fine, so this can not be the reason for my problem.
Thanks in advance!
"%"+query+"%"in yourselectionArgsCursor c = database.rawQuery("SELECT * FROM " + TABLE_NAME+ " WHERE "+COL_HEAD+ " LIKE ? OR "+COL_TEXT+ " LIKE ?", new String[]{query,query});