2013-05-10 194 views
1

不是搜索我有一個searchfield誰在我Arrayadapter搜索查看搜索全字內容

inputSearch.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      ZT.this.adapter.getFilter().filter(cs); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 


     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 

     } 
    }); 

只搜索整個詞搜索。例如:

Baloon 

SEACH Bal回報Baloon,搜索oon回報什麼。我希望他會在這種情況下返回Baloon

感謝您的幫助。

+0

因爲它根據起始字符進行搜索。沒有任何其他地方。 – Riser 2013-05-10 09:28:52

+0

我該如何改變這一點,添加一個自定義過濾器? – Oli 2013-05-10 09:43:49

回答

0

您可以使用FilterQueryProvider並將其傳遞到adapter.setFilterQueryProvider()中。

adapter.setFilterQueryProvider(new FilterQueryProvider() { 
    public Cursor runQuery(CharSequence constraint) { 
     String s = '%' + constraint.toString() + '%'; 
     return getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
      new String[] {Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER}, 
      Phone.DISPLAY_NAME + ' LIKE ? OR ' + Phone.NUMBER + ' LIKE ?', 
      new String[] { s, s }, 
      null); 
    } 
}); 

使用此適配器。

+0

謝謝,但我不知道它用於我的代碼:/ – Oli 2013-05-10 12:39:51