2013-02-06 30 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 ?"; 
} 
相关问题