Básicamente, estoy tratando de establecer el valor de los dígitos de un EditText mediante programación. Hasta ahora tengo:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Lo cual está bien, pero también quiero poder incluir un lugar decimal (.). ¿Algunas ideas?
android
android-edittext
ryandlf
fuente
fuente
DialerKeyListener
lugar deDigitsKeyListener
Respuestas:
Prueba esto:
<EditText android:inputType="number" android:digits="0123456789." />
Desde Código:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
Pero permite al usuario incluir varios "." Vea la respuesta de JoeyRA para números reales.
fuente
TextView
fuentes:// 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.
.
after 9?Prueba esto:
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)
Devuelve un DigitsKeyListener que acepta los dígitos del 0 al 9, más el signo menos (solo al principio) y / o el punto decimal (solo uno por campo) si se especifica.
Esto resuelve el problema de los muchos '.' en EditText
fuente
setInputType
una y otra vez, ¿no anulará el segundo por el primero? Creo que deberías usar,weightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
pero no estoy 100% seguroUtilice
InputType.TYPE_NUMBER_FLAG_DECIMAL
.Consulte también: Tipos de entrada .
fuente
Para la entrada de dirección IP (varios puntos y números)
tratar
<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" />
fuente