2013-08-23 65 views
0

我正在執行數據搜索到我的應用程序中,並且能夠自動顯示自定義搜索建議,當用戶在部分字符串中輸入搜索框時,搜索框將顯示在搜索框下方。 用戶然後可以點擊其中一個建議,這將爲所選搜索項目運行另一個活動。 我使用標準的searchview小部件作爲操作欄的一部分。Android如何使用「like?」添加搜索建議SQLite查詢

要求是使用標準SQLite查詢填充「LIKE('%」+ search_string +「%')」子句的搜索建議。 我已經學習了Android開發人員的搜索說明,包括出色的可搜索字典源代碼示例。 但是,所有可用的示例和說明顯示瞭如何使用內容提供程序然後使用SQLite FTS3擴展來從文本文件中提取數據以運行「匹配?」。 (單詞)類型查詢。 如上所述,這種類型的查詢並不合適,因爲它不允許在搜索數據集中的任何位置搜索部分字符串。

我會感興趣的是一個簡單的代碼示例如何實現上述搜索要求。 任何建議或鏈接到示例源代碼將不勝感激。

回答

2

您可以執行「LIKE」查詢如下;

dbh = new DbHelper(this); 
    SQLiteDatabase db = dbh.getWritableDatabase(); 
    Cursor c = db.query("TableName", new String[]{"ColumnName"} 
    , "ColumnName LIKE ?" ,new String[]{"%"+ filter+ "%" }, null, null, null); 
    while(c.moveToNext()) 
    { 
     // your calculation goes here 
    } 

希望這會引導你。

+0

使用 「喜歡」 上面的查詢是有用的測試目的。但是,我的主要問題是如何在搜索內容提供者中使用「like」類型的搜索(而不是「match」)。最後,我使用了這裏找到的偉大而完整的源代碼示例[http://wptrafficanalyzer.in/blog/adding-custom-search-suggestions-to-search-dialog-from-sqlite-database-in-android/ ],並輔以Android開發人員的「可搜索詞典」代碼示例。 –

0

請使用此查詢: SELECT * FROM ConditionType其中NAME LIKE '%S%'

這個查詢採用的是Android使用SQLite數據庫

-1
String[] Args= {"%"+selectionArgs[0]+"%"}; 
    Cursor c = qb.query(database, projection, selection, Args, 
      null, null, sortOrder); 
+0

在searchable.xml中使用[android:searchSuggestSelection](http://developer.android.com/guide/topics/search/adding-custom-suggestions.html#)時。 –