La commande EditText focus ne fonctionne pas
J'ai un EditText
et un Button
. Cliquez sur le bouton je veux ouvrir le EditText
clavier et en même temps lui demander de se concentrer sur la EditText
de Sorte que l'utilisateur directement commencer à taper dans le clavier et le texte s'affiche dans la EditText
.
Mais dans mon cas, lorsque je clique sur le bouton ouvrir le clavier, mais il ne sera pas mis l'accent sur la EditText
, en raison de laquelle l'utilisateur a cliquer sur le EditText
à nouveau pour écrire sur elle. Quel est le problème. Toute aide ou suggestion.
Code de clic de bouton
m_SearchEditText.requestFocus();
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(m_SearchEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
source d'informationauteur Rahul
Vous devez vous connecter pour publier un commentaire.
s'assurer que l'edittext peut recevoir le focus en mode tactile. Vous pouvez le faire de deux façon.
En xml:
en Java:
Personnellement, je ne fait pas confiance à la définition XML de ce param. J'ai toujours la demande de l'accent mis par ces deux lignes de code:
Le clavier shoul apparaître sur elle-même sans avoir besoin d'appeler InputMethodManager.
Il fonctionne dans la plupart des cas. Une fois il ne fonctionne pas pour moi parce que j'ai perdu la référence à l'objet en raison assez lourd traitement - s'assurer que ce n'est pas votre problème.
Dans mon cas, il a travaillé par l'ajout d'un gestionnaire après que vous avez cliqué sur le bouton et l'accent mis dans une autre vue de la mise au point peut revenir à votre besoin de consulter.
il suffit de mettre ceci dans votre code:
J'espère que ça vous a été utile
Dans votre manifest.xml écrire:
Et appel
m_SearchEditText.requestfocus()
dansoncreate()
.OU,
Essayez:
La suivante fonctionne pour moi et devrait aider:
U besoin de deux attributs xml également en ce sens:
Les ajouter à l'EditText ainsi que les parents des mises en page(Toute disposition à l'intérieur de laquelle de ces points de vue). Par défaut, ce sont les faux, de sorte que l'objet n'est pas donné à la demande de la vue.
Source: https://developer.android.com/reference/android/view/View.html#attr_android:focusable
Après u affiche l'EditText basé sur la case de sélection, ajouter le suivant et précédent focus points dynamiquement dans le code.
Espère que cette aide.
Comme une extension de cette réponse (je n'ai pas l'ajouter comme commentaire en raison de la réputation...).
Si vous voulez réduire le délai à zéro, l'utilisation de gestionnaire.post() à la place.
Code complet: