2009-12-16 3 views
25

J'utilise le code suivant pour démarrer l'activité lorsque l'utilisateur appuyant sur le bouton de recherche sur le combinéutilisateur de démarrage android activité définie sur le bouton de recherche appuyé sur @ combiné

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_SEARCH){ 
     Util.startActivity(ReviewsDetail.this, KeywordSearch.class); 
     return false; 
    }else{ 
     return super.onKeyUp(keyCode, event); 
    } 
} 

Mais voici quelques problèmes avec elle s'il vous plaît regarder l'image .

Lorsque le bouton de recherche de la presse, il première zone de recherche google show au sommet de l'activité puis l'activité démarrage que je veux commencer

alt text

Lorsque cliquez sur le bouton arrière affiche actiivty vide alt text

+0

Devrait être 'return true;' dans le premier cas. – yanchenko

Répondre

60
@Override 
public boolean onSearchRequested() { 

    // your logic here 

    return false; // don't go ahead and show the search box 
} 
+0

merci beaucoup cela fonctionne. –

+0

Je suis content de l'entendre. Si vous êtes satisfait d'une réponse, veuillez la marquer comme «acceptée», en cochant l'icône d'acceptation sous les symboles de vote, afin que les autres utilisateurs puissent voir que ce problème a été résolu. –

+2

Pourquoi n'est-il pas recommandé de remplacer le comportement du bouton de recherche ?! – binnyb

0

Le bouton Rechercher et la requête de recherche du système fonctionnent tous les deux de la même manière lorsqu'ils sont invoqués à partir de n'importe quelle activité de votre application. Si vous voulez le surcharger, vous devrez le redéfinir pour CHAQUE activité à partir de laquelle vous voulez travailler de la même manière. Malheureusement, il n'y a aucun moyen de le remplacer "globalement", ni un moyen de sous-classer/style/thème le popup de recherche par défaut. Tellement triste, google.

Questions connexes