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

146

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

Chiwai Chan
la source
4
La question n'indique pas spécifiquement un désir de changer le type d'entrée autorisé. Il demande simplement comment changer le mode du clavier, ce que je voudrais faire sans changer le type d'entrée. Toutes les réponses expliquent comment changer le type d'entrée.
AlanKley
Vérifiez ma réponse à cette question stackoverflow.com/questions/39593324/…
Aide Android

Réponses:

261

Vous pouvez configurer un inputTypepour votre EditText:

<EditText android:inputType="number" ... />
Josef Pfleger
la source
6
Notez également que vous devez cibler Android 1.5 pour l'utiliser (il n'est pas disponible dans la version 1.1)
Wilka
4
Le problème est que vous ne pouvez pas revenir en arrière. L'utilisation de "nombre | texte" ne fonctionne pas non plus. Il semble que si vous souhaitez afficher un clavier numérique, vous ne pouvez pas lui permettre de revenir au texte.
Je suis d'accord avec Brian..si le premier champ est alpha et le champ suivant est numérique, je ne peux pas passer au champ suivant en utilisant le bouton «Suivant»!
Ahmed
Que vous puissiez revenir en arrière ou non dépend du téléphone, je pense. Le mien le permet.
Martin Clemens Bloch
Je veux changer le numéro de type de clavier et je veux coller du texte dans edittext. Comment faire?
İbrahim YANIK
115

Pour le faire dans un fichier Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Dominique
la source
51

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

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

De plus, vous pouvez utiliser android:maxLengthpour limiter le nombre maximum de nombres.

Pour ce faire par programme:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
Matthijs
la source
Existe-t-il un moyen de le faire par programme? Je meurs d'envie d'obtenir un clavier à nombre limité pour mon EditText mais il est configuré de telle manière qu'il doit être généré dans l'activité.
Martin Erlic
18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

affichera le grand pavé numérique comme numéroteur.

Nguyen Minh Binh
la source
11

Vous pouvez le faire de 2 façons

  1. Ensemble d'exécution

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

    <EditText
        ...
        android:inputType="number" />
Nirav Ranpara
la source
5

Si vous avez besoin d'un nombre fractionnaire, voici la réponse pour vous:

android:inputType="numberDecimal"
macio.Jun
la source
4

Si vous utilisez votre EditText dans Dialog ou créez dynamiquement et que vous ne pouvez pas le définir à partir de xml, cet exemple vous aidera à définir ce type de clavier pendant que vous utilisez Dynamic Edit Text, etc.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

où myEditTxt est l'objet dynamique EDIT TEXT (nom)

Pir Fahim Shah
la source
2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Aliya
la source
Si vous formatez manuellement un texte (comme pour la devise) et que vous souhaitez contrôler uniquement le clavier, c'est le choix. Ne filtrera pas vos caractères. Merci!
lauksas le
Cela a fonctionné comme un charme pour moi. Je souhaite afficher une valeur d'espace réservé textuel lorsqu'un champ n'a pas encore été modifié, mais je souhaite quand même restreindre l'entrée aux nombres et afficher un clavier restreint.
Alex Suzuki
2

Plus de types d'entrées et de détails trouvés ici sur le site Web de Google

sai Gorantla
la source
2

Le code ci-dessous n'autorisera que les chiffres "0123456789", même si vous saisissez accidentellement autre que "0123456789", le texte d'édition ne sera pas accepté.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
Akhila Madari
la source
Vous devriez ajouter des commentaires expliquant votre code et pourquoi c'est la solution
cyroxis
1

Utilisez le code ci-dessous dans le fichier java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

Darshuu
la source
0

Définissez ceci dans votre code xml

android:inputType="number"
fulgen
la source
0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
Shiv Buyya
la source
Si vous avez créé EditText number1 dans le code xml de mise en page, alors si vous souhaitez définir le clavier numérique sur number1 EditText, vous pouvez le faire à l'aide du code Java.
Shiv Buyya