J'ai une activité avec un EditText où j'ai besoin de saisir des numéros uniquement.
Maintenant, j'ai défini le type d'entrée de mon éditext pour être un nombre uniquement et avoir établi un joli clavier pour que mon utilisateur soit utilisé, cependant. J'ai également besoin de vous assurer que le clavier doux ne figure pas pour mon utilisateur quand ils cliquent sur l'Edittext. P>
J'ai essayé de cacher le clavier à travers le manifeste en ajoutant p> dans mon manifeste pour l'activité particulière, mais cela ne fonctionne pas pour moi car dès que l'utilisateur clique sur le clavier EditText, le clavier apparaît à nouveau. P> J'ai essayé de faire Les mêmes émanations de manière programmatique SO P> EditText.setInputType(InputType.TYPE_NULL);
6 Réponses :
Je pensais qu'il serait peut-être possible d'étendre EditText et de gérer l'accès à la touche programmable à travers là-bas et est tombé sur Cette question a une solution très élégante à mon problème. P>
Il suffit de suivre les marches et cela gérait parfaitement la touche de touche de touche logicielle. J'espère que cela aide les autres qui rencontrent cette question. P>
Dans quel éditext vous devez désactiver le clavier programmable, ajouter l'attribut en XML de ce texte d'édition.
<EditText android:id=".." .. android:focusable="false" />
Vous ne devriez pas faire ça. Si tel est le cas, puis d'un champ précédent EditText, cliquer sur Suivant ne ferait pas cette vue sur demandeFocus.
Utilisez le Android: WindowsoftInputMode = "StateHidden" Code> dans votre activité dans le fichier manifeste. Cela fonctionnera. N'utilisez pas l'androïde: Capable = "False" pour EditText à moins que vous n'êtes pas disposé à saisir le texte. Si vous souhaitez donner une entrée, supprimez cette propriété pour l'editext dans le fichier de mise en page. p>
Cela ne semble pas fonctionner: lors de la sélection d'un EditText, le clavier logiciel s'ouvre toujours. Je crois que l'attribut WindowsoftInputMode est conçu pour contrôler le comportement de l'activité lorsque la fenêtre reçoit la mise au point, pas tout le temps.
Cela fonctionne pour ce que je veux: sur l'activité commence, ne montrez pas le clavier souple
Si vous utilisez par exemple le groupe de visiteurs, il vous permet de bloquer le clavier logiciel à l'aide de cette méthode:
view.setDescendantFocusability(view.FOCUS_BLOCK_DESCENDANTS);
Vous pouvez utiliser ce code:
<EditText . . android:enabled="false" android:focusable="false" android:focusableInTouchMode="false" android:inputType="numberPassword" />
Concentrez-vous et activez des causes dans le comportement EditText
Vous pouvez essayer ceci. Cela fonctionne pour moi: