Je suis nouveau sur Android. J'ai déjà passé deux heures à chercher. Tout ce que j'essaye, le clavier logiciel ne s'affiche jamais 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 le AndroidManifest.xml
fichier:
android:windowSoftInputMode="stateVisible|adjustResize"
mais tout en vain. Cela ne se voit jamais. Qu'est-ce que je rate?
Réponses:
Vous devez vous assurer que votre émulateur n'est pas configuré pour utiliser un clavier matériel . Cela peut être fait en choisissant
Edit
un émulateur sélectionné dans l'AVD. Décochez ensuite leHardware keyboard present
paramètre.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 multicœur ainsi que GPU) et s'exécute beaucoup plus rapidement que toutes les images de l'émulateur Android. Si vous utilisez Genymotion, vous devrez désactiver le clavier matériel sous 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'Default
élément sousKeyboard & Input Methods
. Il existe unHardware
paramètre que vous pouvez activer / désactiver. Lorsqu'il est activé, vous utilisez votre clavier physique et lorsqu'il est désactivé, le clavier virtuel standard devrait apparaître chaque fois qu'un champ de texte est sélectionné.Captures d'écran pour les paramètres Genymotion:
la source
Dans la version 2.1.1 - cliquez sur les paramètres de votre appareil virtuel - puis cochez la case "utiliser le clavier virtuel pour taper".
la source
Il y a deux endroits pour désélectionner le clavier matériel dans AS 1.1.0. Celui-ci n'est pas suffisant:
Vous devez le faire (cliquez sur
Tools | Android | AVD Manager
; puis créez un nouvel AVD ou modifiez l'ancien AVD, puis cliquez surShow Advanced Settings
; faites défiler vers le bas et effacezEnable keyboard input
):la source
La méthode d'activation du 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 enregistré les étapes ci-dessous.
[A] API 15, 17, 19 et 21.
Les étapes suivantes activeront le clavier virtuel à l'écran mais désactiveront la possibilité de saisir du texte et d'interagir avec l'AVD à l'aide du clavier matériel de l'ordinateur.
[B] API 22
Le clavier virtuel 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 à côté du clavier virtuel,
[C] API 23
Si vous souhaitez utiliser le matériel et le clavier 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 de l'appareil virtuel.
[D] API 24 et 25
Si l'option Activer l'entrée au clavier a été sélectionnée dans l'AVD, vous pourrez désormais utiliser à la fois les entrées clavier matériel et logiciel. Si vous décochez l'option dans l'AVD, le clavier virtuel s'affichera malgré tout.
[E] API 26
Exactement la même chose que les API [D] 24 et 25, sauf que vous devez naviguer dans un niveau de menu "Système" supplémentaire dans les paramètres de l'appareil avant d'accéder à Langue et saisie / Clavier physique
la source
Peut-être que votre émulateur ne prend pas en charge le clavier logiciel.
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, vérifiez cette réponse.
la source
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 se cacher:
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Essayez celui-ci ...
la source