2017-06-20 8 views
0

Ich versuche also, eine Suche über die App-Leiste durchzuführen und die Abfrage an ein Attribut zu übergeben, das ich "searchRequest" anrufe. Ich möchte das Ergebnis anzeigen.Wie führe ich eine Suche über die App-Leiste durch?

Ich habe this guide in the documentation verfolgt und versucht, aber dann habe ich vergebens.

Wie ich auskommentiert habe, ist meine temporäre Lösung, meinen Loader aufzurufen und das "searchRequest" ein Klassenattribut zu machen. Dies scheint jedoch mehrere Probleme zu verursachen, wie das Ergebnis, das auf dem Bildschirm verbleibt, obwohl die Zurück-Taste gedrückt wird.

Ich habe versucht, die onOptionsMenuClosed() Methode überschreiben, eine setOnCloseListener() auf meine searchView setzen.

Ich vermute, dass ich dies in einer dedizierten SearchActivity tun sollte.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      this.searchRequest = query; 
      /*LoaderManager loaderManager = getLoaderManager(); 
      loaderManager.initLoader(BOOK_LOADER_ID, null,MainActivity.this);*/ 

      return true; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      return false; 
     } 
    }); 
} 
+0

Prüfung dieses Tutorial http://instinctcoder.com/android-studio-sqlite-search-searchview-actionbar/ – RameshJaga

Antwort

0

Fügen Sie dies auch hinzu. Dies wird aufgerufen, wenn die Suchansicht erweitert oder minimiert wird.

MenuItemCompat.setOnActionExpandListener(searchView, 
        new MenuItemCompat.OnActionExpandListener() { 
         @Override 
         public boolean onMenuItemActionExpand(MenuItem menuItem) { 
          return true; 
         } 

         @Override 
         public boolean onMenuItemActionCollapse(MenuItem menuItem) { 
          // Refresh here with full list. 
          return true; 
         } 
        }); 
+0

Das ist genau das, will ich gesucht! Vielen Dank! –

Verwandte Themen