web-dev-qa-db-fra.com

Vue EditText avec numéro de clavier uniquement

Je veux un clavier avecSEULEMENTchiffres visibles dans une vue EditText. Sans autre personnage.

J'ai testé avec toutes les entrées disponibles et ne fonctionne pas .. J'ai cherché un moyen d'obtenir un clavier uniquement avec des chiffres, mais je n'ai vu que des références à:

Android: inputType = "numberPassword"

Mais je veux des nombres visibles dans EditText .Quelqu'un peut m'aider?

Je veux un clavier comme ça: (numberPassword)

enter image description here

J'ai essayé avec:

Android:digits="0123456789"
Android:inputType="phone"

et 

Android:inputType="number"

et apparaît comme ça:

enter image description here

28
Jorge B.

Après plusieurs essais, je l’ai eu! !__. Je règle les valeurs du clavier comme cela par programmation

 myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD); 

Ou si vous voulez aller avec la vue XML, c'est comme:

Android: inputType = "numberPassword"

Les deux config vont afficher une puce de mot de passe, et dans la mesure où nous cherchons des nombres à afficher sur le EditText, nous devons créer une classe ClickableSpan personnalisée.

 private class NumericKeyBoardTransformationMethod extends PasswordTransformationMethod {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return source;
    }
}

Et enfin, nous devons l'implémenter dans EditText afin d'afficher les caractères tapés.

myEditText.setTransformationMethod(new NumericKeyBoardTransformationMethod());

Voici à quoi ressemble mon clavier

66
Mauricio Sartori

Android:inputType="number" ou Android:inputType="phone". Tu peux garder ça. Vous obtiendrez le clavier contenant des nombres. Pour plus de détails sur les différents types de clavier, vérifiez ceci link .

Je pense que ce n'est possible que si vous créez votre propre clavier logiciel. Ou essayez ce Android:inputType="number|textVisiblePassword. Mais il montre encore d'autres personnages. De plus, vous pouvez garder Android:digits="0123456789" pour n'autoriser que les nombres dans votre edittext. Ou si vous souhaitez toujours utiliser la même chose que dans l'image, essayez de combiner deux ou plusieurs fonctionnalités avec | séparateur et vérifiez votre chance, mais selon mes connaissances, vous devez créer votre propre clavier pour obtenir exactement comme ça ..

15
Kanth
<EditText
        Android:id="@+id/editText3"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_weight="1"
        Android:ems="10"
        Android:inputType="number" />

J'ai tout essayé maintenant, essayez celui-là.

edit.setRawInputType(Configuration.KEYBOARD_12KEY);

enter image description here

4
Mudassar Shaheen

Je pense que vous avez utilisé d'une manière ou d'une autre le bon moyen d'afficher le numéro uniquement sur le clavier, il est donc préférable d'essayer la ligne donnée avec xml dans votre texte de montage et cela fonctionnera parfaitement.

  Android:inputType="number"

En cas de doute, vous pouvez à nouveau me demander d’essayer de régler complètement votre problème . Merci.

3
Ravi

Placez les lignes ci-dessous dans votre <EditText>:

Android:digits="0123456789"
Android:inputType="phone"
1
Avadhani Y

En xml edittext:

Android:id="@+id/text"

Au programme:

EditText text=(EditText) findViewById(R.id.text);
text.setRawInputType(Configuration.KEYBOARDHIDDEN_YES);
0
adrian

Pour le EditText si nous spécifions,

Android:inputType="number"

seuls les nombres peuvent être obtenus. Mais si vous utilisez,

Android:inputType="phone"

avec les chiffres, il peut accepter des caractères spéciaux comme;,/". etc.

0
Akanksha Hegde