我现在正在弄清楚如何在我的 Android 应用程序中实现搜索对话框。我已经让它工作了,但它只输出一列。我想我知道如何让它搜索多列(在我的例子中是三列),但 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() 方法中的选项提供。这是怎么回事?如何使用搜索对话框返回多个数据库列?