Androidアプリに検索ダイアログを実装する方法を今考えています。私はそれを機能させましたが、1列しか出力しません。複数の列 (私の場合は 3 列) を検索する方法がわかると思いますが、Eclipse は私が間違っていると言います。DBAdapter クラスでレコードを取得する方法は次のとおりです。
//--- 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
返された結果を表示するアクティビティのメソッドは次のとおりです。
//--- Show Results method
private void showResults(String query) {
Cursor cursor = DBHelper.searchDB(query);
startManagingCursor(cursor);
String[] from = new String[] { DBAdapter.KEY_COLUMN1 }; //--- change this?
int[] to = new int[] { R.id.text1 };
SimpleCursorAdapter records = new SimpleCursorAdapter(this,
R.layout.record, cursor, from, to);
setListAdapter(records);
}
//--- END Show Results method
現在、string[] allcolumns は使用されていません。そして、私はそれを次のように使用すると仮定しました
allcolumns + " LIKE"
DBAdapter クラスの SearchDB() メソッド、およびDBAdapter.allcolumns
showResults メソッドで。ただし、allColumns は showResults() メソッドのオプションとして提供されていません。どうしたんだ?検索ダイアログで複数の DB 列を返すにはどうすればよいですか?