2015-03-10 1 views
2

Мне было интересно, как мы можем реализовать/создать список. Вид под виджем вида поиска на панели действий. И, наконец, отфильтруйте список, когда строка вводится точно так же, как в магазине Google Play.поиск в реальном времени на поисковой панели actionView

ответ

1
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setIconifiedByDefault(true); 

    SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener() 
    { 
     @Override 
     public boolean onQueryTextChange(String cs) 
     { 
      YourActivity.this.adapter.getFilter().filter(cs); 
      YourActivity.this.adapter.setTextToFilter(cs); 
      return false; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) 
     { 
      YourActivity.this.adapter.getFilter().filter(query); 
      YourActivity.this.adapter.setTextToFilter(query); 
      return false; 
     } 
    }; 
    searchView.setOnQueryTextListener(textChangeListener); 

место этот код в oncreateOptionMenu в вашей деятельности

это работает только с использованием arrayadapter

+0

Спасибо и всем парням, но я хочу знать, как вы внедрили адаптер без просмотра списка. Если есть listView, как вы его реализуете, чтобы быть ниже панели действий –

+0

@ I'amNaolKebede, см. Мои комментарии ниже, тогда – pskink

0

Когда вы configure a SearchView, позвоните setSearchableInfo(). За Adding Custom Suggestions на обучение, это включает в себя добавление строки, такие как

android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider" 

к вашему searchable.xml. Затем вы должны реализовать ContentProvider, который может обрабатывать входящие поисковые запросы.

+0

на самом деле есть гораздо более простой способ: OnQueryTextListener – pskink

+0

@pskink - если вы знаете, как связать ' OnQueryTextListener' в раскрывающемся списке предложений SearchView, напишите ответ. Однако вы обнаружите, что встроенный SearchView не имеет механизма для предоставления раскрывающихся предложений на основе чего-либо, кроме правильно созданных результатов ContentProvider. – ianhanniballake

+0

Я вижу, что OP не хочет выпадающего списка, а хочет отдельный фильтруемый ListView, и даже если он хочет выпадающего меню, вы можете использовать setSuggestionsAdapter (адаптер CursorAdapter) или я что-то упустил? – pskink

Смежные вопросы