Le clavier Android ne s’affiche jamais dans l’émulateur

Je suis nouveau sur Android. J’ai déjà passé deux heures à chercher. Tout ce que j’essaie au clavier est jamais montré pour mon EditText . Je le crée simplement:

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

J’ai essayé:

  editText.requestFocus();//i sortinged 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 le fichier AndroidManifest.xml :

  android:windowSoftInputMode="stateVisible|adjustResize" 

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

Vous devez vous assurer que votre émulateur n’est pas configuré pour utiliser un clavier matériel . Cela peut être fait en choisissant Edit sur un émulateur sélectionné dans l’AVD. Désélectionnez ensuite le paramètre Hardware keyboard present .

Vous pouvez également essayer d’utiliser un autre émulateur, tel que Genymotion . Il prend en charge l’accélération matérielle complète (processeur multi-cœur et GPU) et s’exécute 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:
Allez dans Settings -> Language & input et ouvrez l’élément Default sous Keyboard & Input Methods . Il existe un paramètre Hardware que vous pouvez activer / désactiver. Lorsque vous utilisez votre clavier physique, le clavier logiciel standard doit s’afficher chaque fois qu’un champ de texte est actif.

Captures d’écran pour les parameters de Genymotion: Élément par défaut

entrer la description de l'image ici

Dans la version 2.1.1 – cliquez sur les parameters de votre appareil virtuel – puis cochez la case “Utiliser le clavier virtuel pour taper”. entrer la description de l'image ici

entrer la description de l'image ici

Il y a deux endroits pour désélectionner le clavier matériel dans AS 1.1.0. Celui-ci ne suffit pas:

entrer la description de l'image ici

Vous devez le faire (cliquez sur Tools | Android | AVD Manager , puis créez-en un nouveau ou modifiez-le, puis cliquez sur Show Advanced Settings ; faites défiler et désactivez Enable keyboard input ):

entrer la description de l'image ici

Peut-être que votre émulateur ne supporte pas le clavier

Ajoutez une propriété de matériel Prise en charge du clavier et définissez-la sur true pour votre émulateur.

Si c’est déjà vrai, cochez cette réponse.

Montrer:

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

Et pour cacher:

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

Essayez simplement celui-ci ….

La méthode d’activation du clavier logiciel à l’écran pour les émulateurs Android Studio 2+ dépend du niveau de l’API de l’émulateur. J’ai testé les différentes méthodes en commençant par API 15 et enregistre les étapes ci-dessous.

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

Les étapes suivantes activent le clavier virtuel à l’écran, mais désactivent la possibilité de saisir du texte et d’interagir avec l’AVD à l’aide du clavier de l’ordinateur.

  1. Dans Android Virtual Device Manager (AVD), cliquez sur l’action d’édition du périphérique avec lequel vous souhaitez travailler.
  2. Cliquez sur Afficher les parameters avancés et faites défiler jusqu’au bas de la page pour accéder à la section “Clavier”.
  3. Décochez l’option “Activer la saisie au clavier”

[B] API 22

Le clavier logiciel est affiché, peu importe ce que vous faites avec les parameters du clavier matériel. Si vous souhaitez activer le support du clavier matériel en même temps que le clavier logiciel,

  1. Dans AVD, cliquez sur l’action d’édition du périphérique avec lequel vous souhaitez travailler.
  2. Cliquez sur Afficher les parameters avancés et faites défiler jusqu’au bas de la page pour accéder à la section “Clavier”.
  3. Cochez l’option “Activer la saisie au clavier”

[C] API 23

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

  1. Suivez les étapes 1 à 3 de [B]
  2. Sur le périphérique virtuel, lancez Settings, puis sélectionnez Language et input / Current Keyboard
  3. Activer le matériel – Afficher la méthode de saisie

Si vous n’avez pas besoin du clavier matériel, dans les parameters avancés d’AVD, décochez l’option “Activer la saisie au clavier”. Vous n’aurez pas besoin de modifier les parameters du périphérique virtuel.

[D] API 24 et 25

  1. Suivez les étapes 1 à 3 ci-dessus, en cochant ou en décochant l’option “Activer la saisie au clavier” selon que vous souhaitez activer le clavier hardqare.
  2. Sur le périphérique virtuel, lancez Settings, puis sélectionnez Language and input / Physical Keyboard
  3. Activer “Afficher le clavier virtuel”

Si l’option Activer la saisie au clavier a été sélectionnée dans AVD, vous pourrez désormais utiliser les deux entrées du clavier. Si vous décochez l’option dans AVD, le clavier logiciel sera affiché indépendamment.

[E] API 26

Exactement les mêmes que les API [D] 24 et 25, sauf que vous devez naviguer dans un niveau de menu “Système” supplémentaire dans les parameters de l’appareil avant d’accéder à la langue et à l’entrée / clavier physique.