2010-12-01 9 views
0

Je rencontre des problèmes lorsque j'essaie d'afficher la barre de recherche en haut de mon application. Je veux juste que cette barre soit visible pour l'application du trou (dans toutes les activités) même quand l'application démarre, sans que l'utilisateur ait besoin d'appuyer sur un bouton, j'essaie d'utiliser la fonction de recherche d'android. Voici ce que j'ai jusqu'à présent:Affichage d'une barre de recherche dans Android

manifest.xml

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".Main" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".BigImageView"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 
    </activity> 
    <!-- declare the default searchable Activity for the whole app --> 
    <meta-data android:name="android.app.default_searchable" 
      android:value=".BigImageView" /> 

</application> 

res/xml/searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
android:label="@string/app_name" 
android:hint="@string/search_hint" > 

Puis-je accomplir ceci ou l'utilisateur doit-il appuyer sur un bouton pour invoquer la barre de recherche?

Répondre

2

Vous pouvez mettre

onSearchRequested(); 

dans onResume() - mais la barre de recherche se cacherait si un autre élément sera le focus.

Si ce n'est pas ce que vous voulez, vous devez implémenter votre propre barre de recherche (c'est-à-dire avec AutoCompleteTextView).

+0

Existe-t-il un moyen de toujours mettre le focus sur la barre de recherche, afin qu'il soit toujours visible? –

+0

en mettant le onSearchRequested(); dans la méthode onCreate() a fonctionné, maintenant je peux voir la barre de recherche quand l'application commence mais il semble que je dois faire cela pour toutes mes classes et il semble qu'il n'y a aucun moyen de déclarer onSearchRequested() en un seul endroit évitez de l'écrire dans toutes mes classes. J'ai raison? –

+0

vous créez une activité de base (abstraite) (où vous mettez dans cette logique) à partir de laquelle vous étendez toutes vos toutes vos activités. Ensuite, vous n'avez pas besoin de copier/coller la même logique partout. –