2016-01-05 16 views
6

SearchView'tan bir metin almalı ve onu bir Listenin ListView'imde yer alıyorsa, benim Listemde dizilerle karşılaştır ve bir Tost göster. Bunu nasıl yaparım?SearchView'dan metin nasıl alınır?

MenuItem ourSearchItem = menu.findItem(R.id.menu_item_search); 

     SearchView sv = (SearchView) ourSearchItem.getActionView(); 

     sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 

       adapter.getFilter().filter(newText); 
       } 
       return false; 
      } 
     }); 
+0

Olası yinelenen [textview SearchView girdi almak nasıl] (http://stackoverflow.com/questions/20712247/how-to-get-input-from- searchview-to-textview) – starkshang

cevap

16

SearchView testinden elde etmek, sv.getQuery() kullanın: İşte SearchView benim çalışma kod.

+0

Teşekkürler! Bunu düşünüyordum: eğer (Arrays.asList (arraylist) .contains (sv.getQuery()) {// bazı eylemleri gerçekleştirin} ama işe yaramıyor ( – androider

+0

Bunun nedenini söyleyemiyorum çünkü neden olmadı kodunuzu görün, ancak bunu 'arraylist' ve 'Arrays.asList (arraylist)' ve 'sv.getQuery()' baskı değerini yazdırabilirsiniz, eğer sorgu dizginiz boşluk karakterine sahip olmadığından emin olun, eğer öyleyse , silmek için 'trim()' yi kullanın. – starkshang

5

bu kodu deneyin: bir

MenuItem ourSearchItem = menu.findItem(R.id.menu_item_search); 

    SearchView sv = (SearchView) ourSearchItem.getActionView(); 

    sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      Toast.makeText(getContext(), query, Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 

      adapter.getFilter().filter(newText); 
      } 
      return false; 
     } 
    }); 
İlgili konular