2014-09-15 7 views
6
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(Menus.SEARCH)); 
searchView.setQueryHint(this.getString(R.string.search)); 
editSearch = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 
editSearch.setHintTextColor(getResources().getColor(R.color.white)); 
searchView.setOnQueryTextListener(OnQuerySearchView); 


private OnQueryTextListener OnQuerySearchView = new OnQueryTextListener() { 

    @Override 
    public boolean onQueryTextSubmit(String newText) { 
     if (TextUtils.isEmpty(newText)) { 
      listAllContact.clearTextFilter(); 
     } else { 
      listAllContact.setFilterText(newText.toString()); 
     } 
     return true; 
    } 

    @Override 
    public boolean onQueryTextChange(String newText) { 
     String text = editSearch.getText().toString() 
       .toLowerCase(Locale.getDefault()); 
     adapter.filter(text); 
     return true; 
    } 

}; 
+2

können Sie auf Ihre Frage erweitern? – sbrichards

+1

Hier ist Link genau das, was Sie http://Stackoverflow.com/a/25842354/1878148 – Narendra

Antwort

-2

Hier ist ein Weg, es zu tun -

@Override 
public void onBackPressed() { 

    // Write your code here 

    super.onBackPressed(); 
} 
+0

Downvote? Die Frage wird nicht klar gestellt und von dem, was ich verstanden habe, muss der Fragesteller herausfinden, wie er mit der Aktion umgehen soll, wenn der Zurück-Knopf gedrückt wird und meine Lösung genau das tut. – Confuse

+0

Sie haben einen Punkt. Dies ist die am häufigsten gestellte Frage. Kein einziges Detail über das Problem ... –

+0

Dies ist nicht die Antwort. Die Frage ist, dass das Pfeilsymbol der Suchansicht auf drücken. –

18

Wenn Sie android.support.v7.widget.SearchView als Menüpunkt:

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_search" 
     android:title="" 
     app:showAsAction="ifRoom|collapseActionView" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 
</menu> 

Sie können zurück-Taste (für erweiterten Zustand) behandeln mit:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); 
    MenuItem searchItem = menu.findItem(R.id.action_search); 
    searchItem.expandActionView(); 
    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() { 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      // Write your code here 
      return true; 
     } 
    }); 
} 
+0

Können Sie ein bisschen Erklärung für Ihre Antwort hinzufügen? –

+0

Ich habe den XML-Code und die Kommentare hinzugefügt. – Atetc

+1

einfach alles zurück auf TRUE setzen, sonst würden sie nicht funktionieren. Gearbeitet und getestet. Daumen hoch @Atetc – ralphgabb