Android: Comment faire pour ouvrir le clavier pour l'édition EditText lorsque cliquez sur le bouton?
mon cas: j'ai un EditText champ est désactivé avec l'accent.
À côté de EditText champ je dispose de deux boutons pour les méthodes de Saisie. Donc, je veux que quand on clique d'abord sur le bouton: ouvrir doux keybord et de modifier du texte dans l'EditText champ. J'essaie de bien des façons:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
et ne fonctionne pas pour moi. Seul moyen pour ouvrir le clavier virtuel est:
toggleSoftInput(InputMethodManager.SHOW_FORCED, 0)
mais il n'y a aucun moyen de modifier les infos de EditText champ.
Pouvez vous me suggérer comment ouvrir le clavier et modifier le texte pour certains EditText lors d'un clic de bouton.
Merci beaucoup!
Édité:
Donc, EditText n'est pas peut recevoir le focus par défaut. Lorsque je clique sur le bouton Clavier - devrait être focusable, puis montrez-moi du clavier virtuel pour saisir du texte et apparaissent dans l'EditText. Autre méthode pour insérer est: A-B-C bouton qui pas nécessaire clavier. Il sera quelque chose comme le code Morse d'entrée - touche et maintenez-A-B-C bouton 🙂 je vais essayer suggéré exemple pour mettre en œuvre dans mon cas. Merci les gars 🙂
EditText
ne peut recevoir le focus en premier lieu? comment avez-vous accompli? en XML? à l'aide de quels sont les attributs exactement?parce que ce editext sera unnormal edittext. Là, il va être le texte d'inscription lorsque vous cliquez sur Clavier et de montrer doux clavier ou d'une autre façon que je mettrai en oeuvre dernier. J'ai désactivé dans le XML de cette façon:
android:focusable="false"
OriginalL'auteur Dodo | 2013-02-11
Vous devez vous connecter pour publier un commentaire.
La conception que vous avez décrite n'est pas recommandé. Vous êtes violation du
focusable
attribut de l'objet qui n'est pas de contrôler si l'utilisateur peut modifier le texte dans unEditText
composant.Si vous prévoyez de fournir une alternative à la méthode de saisie parce que les cas d'utilisation semble l'exiger (par exemple, vous ne permettre qu'à un certain ensemble de symboles dans le champ de texte modifiable), alors vous devriez probablement désactiver l'édition de texte tout à fait pour le moment l'utilisateur n'est pas autorisé à modifier la valeur du champ.
Déclarer votre champ modifiable:
avis que son
focusable
attribut est laissé à la valeur par défaut. C'est ok, nous nous occuperons plus tard. Déclarer un bouton qui va démarrer le processus d'édition:Maintenant, dans votre
Activity
déclarer:Et dans
onCreate()
ce faire:J'espère que le code avec tous les commentaires est auto-explicatif. Testé sur les Api 8 et 17.
Je vois. essayez-le et si vous avez des questions peut-être que je vais me débrouiller pour résoudre le problème de la manière que vous aimeriez qu'il soit. mais n'utilisez pas le
focusable
attribut - cela signifie que l'utilisateur ne sera pas en mesure de copier le contenu d'un champ par exemple, qui supprime les fonctionnalités naturelles de votre INTERFACE utilisateur. les utilisateurs n'aiment pas les limites du genre.Merci beaucoup pour vos suggestions 🙂 Enfin je l'ai fait avec vous et quelques autres exemple. Vais partager mon code en réponse.
OriginalL'auteur andr
Merci les gars pour votre aide 🙂 j'ai utilisé toutes les suggestions que vous m'avez donné, cherché et testé beaucoup d'autres scripts et enfin mon code fonctionne 🙂
Voici mon code final:
Il peut être utile pour quelqu'un 🙂
Merci!!!!
C'est le bouton: prntscr.com/h8okxb
J'ai trouvé cela très utile pour mein app merci beaucoup à vous l'homme, le garder.
OriginalL'auteur Dodo
Essayez ceci :
OriginalL'auteur Pratik Sharma
J'Ai du Travail ce code pour ouvrir un keybord quand clic sur le bouton.
Comme .
son travail terminé.
OriginalL'auteur Hardik Parmar
OriginalL'auteur Monu Gupta
Pour ceux qui utilise fragments vous pouvez utiliser
InputMethodManager
de cette façon:Code Complet:
OriginalL'auteur Mahmoud Ayman