web-dev-qa-db-fra.com

Android le clavier virtuel n'apparaît jamais dans l'émulateur

Je suis nouveau sur Android. J'ai déjà passé deux heures à chercher. Quoi que j'essaye, le clavier logiciel n'est jamais affiché pour mon 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 tout en vain. Ça ne se voit jamais. Qu'est-ce que je rate?

81
Andrey Chernukha

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. Puis décochez la case le Hardware keyboard present réglage.

Vous pouvez également essayer d'utiliser un autre émulateur, tel que Genymotion . Il prend en charge l’accélération matérielle complète (processeurs multicœurs ainsi que le processeur graphique) et fonctionne beaucoup plus rapidement que les images de l’é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 à 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. Quand il est activé , vous utilisez votre clavier physique et quand il est désactivé le clavier logiciel standard devrait apparaître chaque fois qu'un champ de texte devient actif.

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

enter image description here

208
free3dom

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

enter image description here

73
Sharif

Dans AS 1.1.0, vous pouvez désélectionner le clavier matériel à deux endroits. Celui-ci n'est pas suffisant:

enter image description here

Doit faire cela (cliquez Tools | Android | AVD Manager; puis créez nouveau ou éditez ancien AVD puis cliquez sur Show Advanced Settings; faites défiler et effacez Enable keyboard input):

enter image description here

2
DSlomer64

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 pour cacher:

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

Essayez juste celui-ci ....

1
FarhaSameer786

La méthode d'activation du clavier virtuel à l'écran pour Android Les émulateurs Studio 2+ dépend du niveau de l'API de l'émulateur. J'ai testé les différentes méthodes à partir de l'API 15 et ai enregistré 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 Gestionnaire de périphériques virtuels (AVD), cliquez sur l'action de modification du périphérique avec lequel vous souhaitez travailler.
  2. Cliquez sur Afficher les paramètres avancés et faites défiler de haut en bas la page jusqu'à la section "Clavier".
  3. Décochez l'option "Activer la saisie au clavier"

[B] API 22

Peu importe ce que vous faites avec les paramètres du clavier matériel, le clavier virtuel est affiché. Si vous souhaitez activer la prise en charge du clavier matériel à côté du clavier logiciel, puis,

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

[C] API 2

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

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

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

[D] API 24 et 25

  1. Suivez les étapes [B] 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 ou non.
  2. Sur le périphérique virtuel, lancez Paramètres, puis sélectionnez Langue et entrée/clavier physique.
  3. Activer "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 entrées au clavier matérielle et logicielle. Si vous avez décoché l'option dans l'AVD, le clavier virtuel sera affiché malgré tout.

[E] API 26

Identique aux API [D] 24 et 25, sauf que vous devez naviguer dans un niveau de menu "Système" supplémentaire dans les paramètres du périphérique avant d'accéder à Langue et saisie/clavier physique.

1
Will P

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

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

Si c'est déjà vrai, alors Cochez cette réponse.

1
Niranj Patel