2013-05-10 2 views
1

У меня есть searchfield, кто ищет в моей ArrayadapterSearchView ищет только целые слова, а не ищут в содержании

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

+0

Как я могу изменить это, добавить настраиваемый фильтр? – Oli

ответ

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