11
votes

Comment désactiver le clavier logiciel Android pour une activité particulière?

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> xxx pré>

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);


0 commentaires

6 Réponses :


6
votes

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.

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.


0 commentaires

6
votes

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" />


1 commentaires

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.



4
votes

Utilisez le Android: WindowsoftInputMode = "StateHidden" 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.


2 commentaires

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



0
votes

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);


0 commentaires

-1
votes

Vous pouvez utiliser ce code:

<EditText
    .
    .
    android:enabled="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:inputType="numberPassword" />


1 commentaires

Concentrez-vous et activez des causes dans le comportement EditText



1
votes

Vous pouvez essayer ceci. Cela fonctionne pour moi: xxx


0 commentaires