2009-07-13 12 views
121

Je veux juste fondamentalement passer en mode pavé numérique dès qu'un certain EditText a le focus.Comment afficher le clavier numérique sur un EditText dans android?

+4

La question ne précise pas le désir de changer le type d'entrée autorisé. Il demande simplement comment changer le mode 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

+0

Vérifiez ma réponse à cette question http: // stackoverflow.com/questions/39593324/ne peut pas-résoudre-symbole-showsoftinput/39593871 # 39593871 –

Répondre

224

Vous pouvez configurer un inputType pour votre EditText:

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

C'est étonnamment facile. acclamations –

+6

Notez également que vous devez cibler Android 1.5 pour l'utiliser (ce n'est pas disponible dans 1.1) – Wilka

+4

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 le laisser revenir au texte. –

107

Pour le faire dans un fichier Java:

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

J'ai trouvé cette mise en œuvre 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 la quantité maximum de chiffres.

Pour ce faire par programme:

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

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

Y at-il un moyen de faire cela par programme? Mourir pour obtenir un clavier numérique limité pour mon EditText mais il est configuré de telle sorte qu'il doit être généré dans l'activité. – santafebound

3

Si vous utilisez votre EditText dans la boîte de dialogue ou de créer dynamiquement et vous ne pouvez le définir à partir de XML alors cet exemple vous aidera à établir ce type de tout à clavier vous utilisez dynamique Modifier le texte etc

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 

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

10

vous pouvez le faire de 2 façons

  1. Runtime mis

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

    <EditText 
        ... 
        android:inputType="number" /> 
    
17
<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ... 
    android:inputType="number|phone"/> 

montrera le grand pavé numérique comme transmetteur téléphonique.

+0

exactement ce dont j'ai besoin! – jjLin

0
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
2

Plus de types d'entrée et les détails trouvés here sur le site google

4

Si vous avez besoin fractionnaire, alors ceci est la réponse pour vous:

android:inputType="numberDecimal" 
0

Define dans votre code xml

android:inputType="number" 
0

Utilisez le code suivant dans le fichier java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

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

Pouvez-vous s'il vous plaît expliquer le code? – MBH