J'essaie essentiellement de définir la valeur des chiffres d'un EditText par programme. Jusqu'à présent, j'ai:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Ce qui est bien, mais je veux aussi pouvoir inclure une décimale (.). Des idées?
android
android-edittext
ryandlf
la source
la source
DialerKeyListener
place deDigitsKeyListener
Réponses:
Essaye ça:
<EditText android:inputType="number" android:digits="0123456789." />
À partir du code:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
Mais, il permet à l'utilisateur d'inclure plusieurs "." Voir la réponse de JoeyRA pour les nombres réels.
la source
TextView
sources:// If no input type was specified, we will default to generic text, since we can't tell the IME about the set of digits that was selected.
.
après 9?Essaye ça:
weightInput.setInputType(InputType.TYPE_CLASS_NUMBER); weightInput.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); weightInput.setKeyListener(DigitsKeyListener.getInstance(false,true));
public static DigitsKeyListener getInstance (boolean sign, boolean decimal)
Renvoie un DigitsKeyListener qui accepte les chiffres de 0 à 9, plus le signe moins (uniquement au début) et / ou le point décimal (un seul par champ) si spécifié.
Cela résout le problème du plus grand nombre ». dans EditText
la source
setInputType
une fois de plus, cela ne remplacera-t-il pas le second par le premier? Je pense que vous devriez utiliserweightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
mais je ne suis pas sûr à 100%Utilisez
InputType.TYPE_NUMBER_FLAG_DECIMAL
.Voir également: Types d'entrée .
la source
Pour l'entrée d'adresse IP (plusieurs points et nombres)
essayer
<EditText android:id="@+id/ipBox" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/ipAddrHint" android:inputType="numberDecimal|number" android:digits="0123456789." android:textSize="30sp" />
la source