2013-05-21 19 views
8

Ich verwende Searchview in meiner Anwendung (ohne Aktionsleiste). Wie kann ich Suchansicht nach Abfragetext einreichen?Android - Kollaps Searchview nach dem Senden

Ich habe diese Zuhörer;

 @Override 
     public boolean onQueryTextSubmit(String query) { 

      InputMethodManager imm = (InputMethodManager)thisFr.getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(globalSearch.getWindowToken(), 0); 

      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

Ich benutze keine ActionBar, also habe ich keine Funktion wie collapseActionView().

Warten auf Hilfe

Dank

+0

Sie könnten wahrscheinlich .setVisibility (View.GONE) in der Suchansicht aufrufen - oder gibt es einen Grund, warum Sie das nicht können? – Cornholio

+0

I zweite Cornholio dafür, mit einer Animation können Sie einen schönen Blick Kollaps –

+0

Dank für Kommentare erreichen. Aber wenn Sie Sichtbarkeit auf GONE einstellen, ist das Suchsymbol ebenfalls unsichtbar. nicht wahr? Ich möchte die Suchansicht symbolisieren. – dracula

Antwort

13

Sie können es auf diese Weise in Ihrer Tätigkeit tun, mit ActionBarSherlock getestet (es auch die Tastatur verbirgt, stellen Sie sicher, in onQueryTextSubmit false zurück):

private MenuItem searchMenuItem; 

public MenuItem getSearchMenuItem() { 
    return searchMenuItem; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // ... 
    searchMenuItem = menu.findItem(R.id.menu_search); 
    // ... 
    searchView.setOnQueryTextListener(new OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      MenuItem searchMenuItem = getSearchMenuItem(); 
      if (searchMenuItem != null) { 
       searchMenuItem.collapseActionView(); 
      } 
      return false; 
     } 
     @Override 
     public boolean onQueryTextChange(String newText) { 
      // ... 
      return true; 
     } 
    }); 
    // ... 
    return super.onCreateOptionsMenu(menu); 
} 
+0

Nur eine Anmerkung: Dies wird nicht die SearchView zusammenfalten, wenn stattdessen ein Vorschlag ausgewählt wird. Sie benötigen dazu OnSuggestionListener. – kupsef

2

Wenn Sie die SearchView im OptionsMenu verwenden, können Sie invalidateOptionsMenu()

9

aufrufen, müssen Sie setIconified (true) t aufrufen wice, um Ihre Suchansicht tatsächlich zu reduzieren, wobei der erste Anruftext mit der zweiten Anruftastatur gelöscht wird und die Suchansicht geschlossen wird.

1
//close suggestion list on query text submit 
searchView.setIconified(true);