2012-12-12 3 views
1

J'ai un problème avec l'affichage de la recherche dans la barre d'action sherlock, donc j'ai décidé d'utiliser le texte d'édition à la place. mais quand je veux utiliser le texte d'édition de mon accident d'application (Android 2.3). comment pourrais-je utiliser search edittext ou searchview dans l'activité sherlock pour android 2.3?Recherche Edittext dans Sherlock Acionbar

ici est ma onCreateOptionsMenu fonction:

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater minflater = getSupportMenuInflater(); 
    minflater.inflate(R.menu.activity_main, menu); 
    View v = (View) menu.findItem(R.id.search).getActionView(); 
    txtSearch = (EditText) v.findViewById(R.id.txt_search); 
    txtSearch.setOnEditorActionListener(new OnEditorActionListener() { 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 

      return false; 
     } 
    }); 
    return true; 
} 

et ceci est mon edittext source xml:

<EditText 
    android:id="@+id/txt_search" 
    android:inputType="text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cursorVisible="true" 
    android:hint="@string/hint" 
    android:imeOptions="actionDone" 
    android:textColor="@android:color/black" 
    android:textCursorDrawable="@android:color/black"  
    /> 

et ma recherche élément de menu:

<item 
    android:id="@+id/search" 
    android:title="Search" 
    android:icon="@android:drawable/ic_menu_search" 
    android:showAsAction="always|collapseActionView" 
    android:actionViewClass="@layout/search_layout" 
    /> 

Si quelqu'un connaît un moyen Pour utiliser searchview dans l'activité Sherlock ou utiliser edittext pour la recherche dans la barre d'action sherlock, notez-moi.

+0

Je ne pas utiliser l'activité de sherlock, mais je l'ai utilisé Textwatcher pour filtrer mes listes avec EditText (sorte de recherche!) espérons que ça aide. –

Répondre

0

travail pour moi:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
getSupportMenuInflater().inflate(R.menu.your_menu, menu); 

// "0" is the number of menu item search in my example 
menu.getItem(0).setActionView(R.layout.your_layout_search); //your layout with edittext 
EditText editSearch = (EditText) menu.getItem(0).getActionView().findViewById(R.id.edit_search); 

return super.onCreateOptionsMenu(menu); 
} 
Questions connexes