2013-04-24 8 views
6

Ich habe Sherlock Suchansicht Widget in der Aktionsleiste für Suchmenü verwendet. Das Code-Snippet zum Initialisieren der Suchansichtwie Sie das Zusammenfalten der Suchansicht auf der Rückseite deaktivieren Taste gedrückt android

 MenuItem item = menu.findItem(R.id.menu_search); 
    item.expandActionView(); 
    mSearchView = (SearchView) item.getActionView(); 
    mSearchView.setIconifiedByDefault(false); 
    mSearchView.setQuery(query, false); 
    mSearchView.clearFocus(); 

Der obige Code zeigt erweiterte Suchansicht mit Standardsuchabfrage. Das Problem ist, wenn ich die Schaltfläche "Zurück" drücke, wird die Suchansicht erneut geschlossen, bevor die vorherige Aktivität in Android wiederhergestellt wird. Ich möchte nicht, dass die Suchansicht beim Zurück-Tastendruck abbricht. So verhindern Sie, dass die Suchansicht auf der Zurück-Taste zusammenfasst Drücken Sie?

+0

http://stackoverflow.com/questions/9629313/auto- collapse-actionbar-searchview-auf-soft-tastatur-schließen –

+0

der obige Beitrag unterscheidet sich von meinem pr Problem. Meine Suchansicht wird beim Drücken der Zurück-Taste ausgeblendet. Ich muss dieses Standardverhalten deaktivieren. Ich möchte nicht, dass die Suchansicht zusammenbricht, sollte sie immer erweitert werden? irgendein Vorschlag ? – user1526671

+0

hast du eine Antwort dafür bekommen? –

Antwort

0

einen Booleschen Wert hinzufügen, wenn Such Ansicht wie diese die Taste drücken hinzufügen

private Boolean isSearchPageIsOpen = true; 

Dann öffnen ist auch

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      if(isSearchPageIsOpen){ 

       do something here 
     } 
     return false; 
+1

Suchansicht zurück Drücken Sie nicht aufKeydown Override Methode – user1526671

0

zu behandeln zurück SearchView.setIconifiedByDefault(false) sollte genug sein, wenn Sie das android:showAsAction="always" Attribut gesetzt haben Ihr Menü xml.

folgenden Ausschnitt funktioniert für mich:

default_options.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    <item android:id="@+id/action_search" 
     android:title="@string/search" 
     android:icon="@drawable/topbar_busqueda" 
     androidshowAsAction="always" 
     android:actionViewClass="android.support.v7.widget.SearchView" /> 
</menu> 

Aktivität

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.default_options menu); 
    MenuItem menuItem = menu.findItem(R.id.action_search); 
    SearchView searchView = (SearchView) menuItem.getActionView(); 
    prepareSearchViewAdapter(searchView, menuItem); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

private void prepareSearchViewAdapter(final SearchView searchView, MenuItem menuItem) { 
    searchView.setIconifiedByDefault(false); 
}