2013-02-06 28 views
0

我在我的應用程序中找到了搜索功能。 它幾乎可以正常工作,我的問題是它只能捕捉從搜索結果中類似於searchWord的結果。在Android應用程序內搜索SQLite數據庫

例如: 如果searchWord是「ada」,則結果將包含START WITH「ada」的所有記錄,但不包含其中某處包含「ada」的所有記錄。

我知道這只是一個小修改,但這是我做過的第一個數據庫處理。

那麼,我該如何修改這個搜索任何包含,而不是爲開始於

代碼:

public Cursor getMatchingFromContacts(String searchWord) throws SQLException { 

    String queryString = "SELECT _id, full_name FROM " 
      + SF_CONTACT_TABLE; 

    if (searchWord != null) { 
     searchWord = searchWord.trim() + "%"; 
     queryString += " WHERE " + FULL_NAME + " LIKE ?"; 
    } 
    String params[] = { searchWord }; 

    if (searchWord == null) { 
     params = null; 
    } 
    try { 
     Cursor cursor = db.rawQuery(queryString, 
       params); 
     if (cursor != null) { 
      cursor.moveToFirst(); 
      return cursor; 
     } 
    } catch (SQLException e) { 
     Log.e("AutoCompleteDbAdapter", e.toString()); 
     throw e; 
    } 

    return null; 
} 

感謝所有的建議!

+0

1 /瞭解你用什麼作品。 2 /推測預期的行爲。 3 /有疑問請閱讀文檔 – njzk2

回答

3

這裏只是修改塊:

if (searchWord != null) { 
    searchWord = "%" + searchWord.trim() + "%"; 
    queryString += " WHERE " + FULL_NAME + " LIKE ?"; 
} 
+0

好吧,%是「哪裏匹配」的標誌, –

2

試試這個..

if (searchWord != null) 
{ 
    searchWord = "%" + searchWord + "%"; 
    queryString += " WHERE " + FULL_NAME + " LIKE ?"; 
} 
相關問題