154 votes

Comment afficher le clavier numérique sur un EditText dans Android ?

Je veux juste basculer en mode pavé numérique dès qu'un certain EditText a le focus.

4 votes

La question n'indique pas spécifiquement un désir de changer le type d'entrée autorisé. Elle demande simplement comment changer le mode de clavier, ce que je voudrais faire sans changer le type de saisie. Toutes les réponses expliquent comment changer le type d'entrée.

0 votes

Vérifiez ma réponse à cette question stackoverflow.com/questions/39593324/

275voto

Josef Pfleger Points 37003

Vous pouvez configurer un inputType pour votre EditText :

<EditText android:inputType="number" ... />

6 votes

Notez également que vous devez cibler Android 1.5 pour utiliser cette fonction (elle n'est pas disponible en 1.1).

4 votes

Le problème est que vous ne pouvez pas revenir en arrière. L'utilisation de "number|text" ne fonctionne pas non plus. Il semble que si vous voulez afficher un clavier numérique, vous ne pouvez pas lui permettre de revenir au texte.

0 votes

Je suis d'accord avec Brian : si le premier champ est alpha et que le suivant est numérique, je ne peux pas passer au champ suivant en utilisant le bouton " Suivant " !

114voto

Dominic Points 731

Pour le faire dans un fichier Java :

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

56voto

Matthijs Points 406

J'ai trouvé cette implémentation utile, elle montre un meilleur clavier et limite les caractères d'entrée.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

En outre, vous pouvez utiliser android:maxLength pour limiter le nombre maximal de numéros.

Pour faire cela de manière programmatique :

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);

0 votes

Existe-t-il un moyen de faire cela de manière programmatique ? Je voudrais obtenir un clavier à nombre limité pour mon EditText, mais il est configuré de telle sorte qu'il doit être généré dans l'activité.

19voto

Nguyen Minh Binh Points 6438
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

affichera le grand pavé numérique comme composeur.

10voto

Nirav Ranpara Points 5859

Vous pouvez le faire de 2 façons

  1. Jeu d'exécution

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
  2. Utilisation de XML

    <EditText
        ...
        android:inputType="number" />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X