2010-10-26 3 views
4

Android: show soft keyboard automatically when focus is on an EditTextAndroid: Boîte de dialogue Clavier show souple automatiquement mise au point est sur un EditText ne fonctionne pas

J'ai lu ce post qui affiche automatiquement le clavier virtuel quand une boîte de dialogue apparaît. Cependant, ça ne marche pas pour moi. des idées pourquoi? Même si le texte d'édition est automatiquement activé lors de l'affichage de la boîte de dialogue, l'événement ne se déclenche pas. J'ai aussi lu la réponse onpostresume mais je ne sais pas comment l'appliquer. toute aide est appréciée. Cependant, j'ai remarqué que si je change de focus sur le bouton, je me concentre à nouveau sur le texte d'édition. cet événement fonctionne, en utilisant ce code ci-dessous.

et.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (hasFocus) { 
        InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
         inputMgr.toggleSoftInput(0, 0); 
       } 
      } 
     }); 

une idée sur la façon de l'appliquer?

Répondre

2

juste essayer d'ajouter la ligne ci-dessous avant "et.setOnFocusChangeListener"

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)) 
        .showSoftInput(et, 2); 
13

Ce que vous pouvez faire est essayer d'utiliser postDelayed(Runnable) pour EditText comme ci-dessous,

   ettext.requestFocus(); 
       ettext.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         InputMethodManager keyboard = (InputMethodManager) 
         getSystemService(Context.INPUT_METHOD_SERVICE); 
         keyboard.showSoftInput(ettext, 0); 
        } 
       },200); 
+0

Juste après() était assez pour moi, qu'apparemment coups de pied à l'arrière de la file d'attente, après que la vue est rendue visible. Je suis généralement très prudent avec les valeurs magiques et les retards arbitraires. – EboMike

Questions connexes