2013-03-02 2 views
4

Comment puis-je démarrer une activité avec un SearchView avec le champ de texte ouvert. De cette façon, je pourrais chercher sans avoir à cliquer sur la longue-vue. J'utilise Sherlock Action Bar.Démarrer l'activité avec SearchView ouvrir

Voici mon code:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

    final SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); 
     searchView.setQueryHint("Cerca domande"); 

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       if (query.length() != 0) { 

        // handle search here 
        return true; 
       } 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 

       if (newText.length()>=3) { 
        new PostTask().execute(newText); 

        Util.setSharedPreferences(SearchActivity.this, "lastsearch", newText); 
       } 
       return false; 
      } 
     }); 

     menu.add("Search") 
      .setIcon(ic_search_inverse) 
      .setActionView(searchView) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 


     listsearch.setOnItemClickListener(this); 

    return true; 
    } 

Merci.

Répondre

13

Vous avez essayé cela?

searchMenu.expandActionView(); 

dans OnCreateOptionsMenu()

menu.add("Search") 
      .setIcon(ic_search_inverse) 
      .setActionView(searchView) 
      .expandActionView(); 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 

vous pouvez ajouter le focus, ouvert clavier virtuel. Donc, tout est prêt pour l'utilisateur à taper et rechercher.

Mais ce n'est pas le comportement standard.

+0

Je suis à la recherche dans votre réponse @ Archie.bpgc et la recherche sur les expandActionView(). De toute façon, il n'y a pas d'objet searchMenu dans mon code. Merci – Gyonder

+0

: | Par 'searchMenu' je veux dire l'élément de menu de recherche que vous avez ajouté à votre menu –

+0

Ok merci. Cela fonctionne :) – Gyonder

1

vous pouvez essayer ceci:

mSearchView.setIconifiedByDefault(false); 
+0

Ceci ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son message - vous pouvez toujours commenter vos propres messages, et une fois que vous aurez suffisamment de [réputation] (http://stackoverflow.com/help/whats-reputation) vous pourrez être capable de [commenter] (http://stackoverflow.com/help/privileges/comment) sur n'importe quel post. – bummi

+0

Cela ressemble à une suggestion valide, mais vous devriez l'écrire comme réponse si vous ne posez pas vraiment de question. Ou, si vous cherchez des éclaircissements, postez-le comme un commentaire à la place. – Caleb