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?
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:
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".
Dans AS 1.1.0, vous pouvez désélectionner le clavier matériel à deux endroits. Celui-ci n'est pas suffisant:
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
):
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 ....
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.
[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,
[C] API 2
Si vous souhaitez utiliser le clavier matériel et logiciel, alors ...
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
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.
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.