私は Android 検索ダイアログを動作させましたが、私が抱えている問題は、3 列すべてを検索したい 3 列の DB テーブルがあることです。以下のメソッドは、テーブルの列 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
しかし、それはアプリをクラッシュさせます。では、3 つの列 (Column1、Column2、および Column3) を検索するようにメソッドを変更するにはどうすればよいでしょうか。