web-dev-qa-db-fra.com

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

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

132
Chiwai Chan

Vous pouvez configurer une inputType

Pour le faire dans un fichier Java:

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

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:maxLength pour limiter le nombre maximal de nombres. 

Pour le faire par programme:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
46
Matthijs
<EditText
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    ...
    Android:inputType="number|phone"/> 

affichera le grand pavé numérique en tant que composeur.

17
Nguyen Minh Binh

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. Utiliser XML

    <EditText
        ...
        Android:inputType="number" />
    
10
Nirav Ranpara

Si vous avez besoin d'un nombre fractionnaire, voici la solution:

Android:inputType="numberDecimal"
5
macio.Jun

Si vous utilisez votre texte d'édition dans la boîte de dialogue ou créez de manière dynamique et que vous ne pouvez pas le définir à partir de xml, cet exemple vous aidera à définir ce type de clavier lorsque vous utilisez un texte dynamique, etc.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

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

3
Pir Fahim Shah

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

2
sai Gorantla

Utilisez le code ci-dessous dans le fichier Java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

1
Darshuu
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
1
Aliya

Définissez ceci dans votre code XML

Android:inputType="number"
0
fulgen
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
     number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));

Ce code ne prend que des chiffres de "0123456789", même si vous tapez accidentellement autre que "0123456789", le texte modifié ne sera pas accepté.

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