86 votes

Le clavier logiciel Android ne s'affiche jamais dans l'émulateur

Je suis nouveau sur Android. J'ai déjà passé deux heures à chercher. Quoi que j'essaie, le clavier logiciel ne s'affiche jamais sur mon ordinateur. EditText . Je le crée simplement :

EditText editText = (EditText)findViewById(R.id.editText);

J'ai essayé :

 editText.requestFocus();//i tried without this line too
 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

et :

editText.setOnFocusChangeListener(new OnFocusChangeListener() {

         @Override
         public void onFocusChange(View v, boolean hasFocus) 
         {    

                     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                     imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

         }
     });

J'ai aussi essayé :

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

J'ai essayé de mettre cette ligne dans AndroidManifest.xml fichier :

 android:windowSoftInputMode="stateVisible|adjustResize"

mais en vain. Ça ne se voit jamais. Qu'est-ce que je rate ?

212voto

free3dom Points 4024

Vous devez vous assurer que votre émulateur n'est pas configuré pour utiliser un fichier clavier physique . Cela peut se faire en choisissant Edit sur un émulateur sélectionné dans l'AVD. Puis décochez el Hardware keyboard present réglage.

Vous pouvez aussi essayer d'utiliser un autre émulateur, comme par exemple Genymotion . Il prend en charge l'accélération matérielle complète (CPU multi-core ainsi que GPU) et fonctionne beaucoup plus rapidement que n'importe quelle image d'émulateur Android. Si vous utilisez Genymotion, vous devrez désactiver le clavier matériel dans Android (voir ci-dessous pour plus de détails).

Pour désactiver le clavier matériel dans Genymotion :
Aller à Settings -> Language & input et ouvrir le Default article sous Keyboard & Input Methods . Il existe un Hardware que vous pouvez activer ou désactiver. Lorsqu'il est sur vous utilisez votre clavier physique et quand il est off le clavier virtuel standard devrait s'afficher chaque fois qu'un champ de texte est sélectionné.

Captures d'écran pour les paramètres de Genymotion : Default Item

enter image description here

73voto

Sharif Points 88

Dans la version 2.1.1 - cliquez sur les paramètres de votre périphérique virtuel - puis cochez la case "utiliser le clavier virtuel pour taper". enter image description here

enter image description here

3voto

Will P Points 349

La méthode pour activer le clavier virtuel à l'écran pour les émulateurs Android Studio 2+ dépend du niveau d'API de l'émulateur. J'ai testé les différentes méthodes à partir de l'API 15 et j'ai enregistré les étapes ci-dessous.

[A] APIs 15, 17, 19 et 21.

Les étapes suivantes permettent d'activer le clavier virtuel à l'écran mais désactivent la possibilité de saisir du texte et d'interagir avec l'AVD à l'aide du clavier matériel de l'ordinateur.

  1. Dans Android Virtual Device Manager (AVD), cliquez sur l'action d'édition pour le dispositif avec lequel vous souhaitez travailler
  2. Cliquez sur Afficher les paramètres avancés et faites défiler la page jusqu'au bas de la section "Clavier".
  3. Décochez l'option "Activer la saisie au clavier".

[B] API 22

Le clavier logiciel s'affiche, quoi que vous fassiez avec les paramètres du clavier matériel. Si vous souhaitez activer la prise en charge du clavier matériel en même temps que le clavier virtuel, alors..,

  1. Dans l'AVD, cliquez sur l'action de modification de l'élément dispositif avec lequel vous souhaitez travailler
  2. Cliquez sur Afficher les paramètres avancés et faites défiler l'écran jusqu'au bas de la page. la page jusqu'à la section "Clavier".
  3. Cochez l'option "Activer la saisie au clavier".

[C] API 23

Si vous souhaitez utiliser le clavier matériel et logiciel, alors...

  1. Suivez les étapes 1 à 3 de [B].
  2. Sur l'appareil virtuel, lancez Paramètres, puis sélectionnez Langue et entrée / Clavier actuel.
  3. Activer le matériel - Afficher la méthode d'entrée

Si vous n'avez pas besoin du clavier matériel, dans les paramètres avancés de l'AVD, décochez l'option "Activer la saisie au clavier". Vous n'aurez pas besoin de modifier les paramètres du dispositif virtuel.

[D] APIs 24 et 25

  1. Suivez les étapes [B] 1 à 3 ci-dessus, en cochant ou décochant l'option "Activer la saisie au clavier" selon qu'il s'agit de l'option "Activer la saisie au clavier" selon que vous souhaitez activer le clavier dur.
  2. Sur le dispositif virtuel, lancez Paramètres, puis sélectionnez Langue et entrée / Clavier physique.
  3. Activez "Afficher le clavier virtuel".

Si l'option Activer la saisie au clavier a été sélectionnée dans l'AVD, vous pourrez désormais utiliser les saisies au clavier dur et souple. Si vous avez décoché l'option dans l'AVD, le clavier souple s'affichera malgré tout.

[E] API 26

Exactement comme les API [D] 24 et 25, sauf que vous devez passer par un niveau supplémentaire du menu "Système" dans les paramètres de l'appareil avant d'arriver à Langue et saisie / Clavier physique.

2voto

DSlomer64 Points 2215

Il y a deux endroits pour désélectionner le clavier matériel dans AS 1.1.0. Celui-là n'est pas suffisant :

enter image description here

Il faut le faire (cliquer Tools | Android | AVD Manager ; puis créer un nouveau ou modifier un ancien AVD et enfin cliquer sur Show Advanced Settings ; faire défiler et effacer Enable keyboard input ) :

enter image description here

1voto

FarhaSameer786 Points 255

Pour montrer :

EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// only will trigger it if no physical keyboard is open
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

Et de se cacher :

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);

Essayez juste ceci : ....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X