在Android搜索对话框中返回多个列

时间:2012-05-30 15:56:55

标签: android sqlite

我现在正在弄清楚如何在我的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

现在,字符串[] allcolumns未被使用。我以为我会用

来使用它
allcolumns + " LIKE"

在DBAdapter类的'SearchDB()方法中,以及DBAdapter.allcolumns在showResults方法中。但是allColumns不作为showResults()方法中的选项提供。这是怎么回事?如何使用“搜索”对话框返回多个数据库列?

1 个答案:

答案 0 :(得分:0)

我在Android SDK的SearchableDictionary示例中找到了答案。您必须修改您的records.xml文件,以便它具有您想要返回的列的文本视图。另外,在showResults()方法中,在from字符串中,添加:DBAdapter.KEY_COLUMN1, DBAdapter.KEY_COLUMN2, DBAdapter.KEY_COLUMN3当然要使用自己的数据库调用和列名。