2012-01-04 2 views
1

Я создал список списков фильтров, где пользователь вводит ввод через edittext, и результаты фильтруются в списке.Кнопка просмотра списка фильтров Android listget edittext?

Код работает хорошо, но когда я нажимаю кнопку «Пробел», результаты в виде списка исчезают. как я могу добавить пространство в поиск, не отбрасывая содержимое списка?

Вот мой текущий код:

myListview.setTextFilterEnabled(true); 

    edNearBy.addTextChangedListener(new TextWatcher() { 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 

     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

      NearByActivity.this.aa.getFilter().filter(s); 

     } 
    }); 

ответ

3

сделать так:

public void afterTextChanged(Editable s) { 
    String st = s.toString().trim();    
    NearByActivity.this.aa.getFilter().filter(st); 
} 

но не делают фильтрации таким образом, here is the correct one.

+2

Thnx работает отлично, у пропущенный "ул" в строке 3 Тхо NearByActivity.this.aa.getFilter() фильтр (St);. – ZealDeveloper

+1

: D фиксированный это .. –

1

Я нашел решение:

String[] hi={"Hi there", "Hello", "Bye"}; 

adapter = new ArrayAdapter<String>(slownik.this, R.layout.list_item, R.id.word_name,hi); 
lv.setAdapter(adapter); 

inputSearch.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

     lv.setTextFilterEnabled(true); 
     lv.setFilterText(s.toString().trim()); 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 


    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     slownik.this.adapter.getFilter().filter(s.toString().trim()); 
     if(s.length()==0){ 
      lv.clearTextFilter(); 
     } 
    } 
});