2016-12-28 1 views
1

J'ai inclus SearchView dans le HomeScreen. J'utilise SearchView pour la recherche de lieu. Ceci est ma capture d'écran de HomeScreen: enter image description hereGestion des événements SearchView et BackPress

Ceci est mon code dans onCreateOptionsMenu méthode:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
    inflater.inflate(R.menu.home, menu); 
    searchItem = menu.findItem(R.id.menu_item_search_places); 
    searchItem.setIcon(FontIconDrawable.inflate(getContext(), R.xml.ic_search)); 
    searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
    searchView.setOnSuggestionListener(this); 
    searchView.setOnQueryTextListener(this); 
    placesSearchAdapter = new PlacesSearchAdapter(this.getContext()); 
    searchView.setSuggestionsAdapter(placesSearchAdapter); 
    searchView.setMaxWidth(750); 
    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() { 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      corLDriveInfoContainer.setVisibility(View.GONE); 
      fabDrivingDirection.setVisibility(View.VISIBLE); 
      mapView.deleteAllAnnotationsAndCustomPOIs(); 
      return true; 
     } 
    }); 
} 

Ceci est mon SearchView quand je clique sur SearchIcon. enter image description here

Ceci est mon SearchView résultat:

C. enter image description here

Je FabButton à conduire la position sélectionnée.

D. enter image description here

Mais, mon problème est, comment pouvons-revenir à View C de View D quand j'appuyez sur le bouton de retour?

Répondre

1

Vous devez remplacer onBackPressed méthode dans votre activité comme celle

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    //change your View from D to C using the same code you used to go to D from C 
} 
1

-je inclure ceci pour résoudre mon problème dans onBackPress méthode:

@Override 
public void onBackPressed() { 
    searchItem.expandActionView(); 
    searchView.setQuery("", false); 
    searchView.clearFocus(); 

    super.onBackPressed(); 
}