我已经让 Android 搜索对话框正常工作,但我遇到的问题是我有一个 3 列数据库表,我希望在其中搜索所有 3 列。以下方法仅对表的第 1 列执行搜索:
//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
String[] allColumns = new String[]{ KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 };
return db.query(true, DB_TABLE, new String[] { KEY_ROWID,
KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query + "%'", null, null, null, null, null);
}
//--- END Get Records for Search
所以我尝试向查询中添加一个字符串数组,如下所示:
//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
String[] allColumns = new String[]{ KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 };
return db.query(true, DB_TABLE, new String[] { KEY_ROWID,
KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }, allColumns + " LIKE" + "'%" + query + "%'", null, null, null, null, null);
}
//--- END Get Records for Search
但这会使应用程序崩溃。那么如何修改方法来搜索三列(Column1、Column2 和 Column3)呢?