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.


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

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

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

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.


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

5

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

android:inputType="numberDecimal"

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)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

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

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

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


0

Définissez ceci dans votre code xml

android:inputType="number"

0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.