Estou essencialmente tentando definir o valor de dígitos de um EditText programaticamente. Até agora eu tenho:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
O que é bom, mas também quero incluir uma casa decimal (.). Alguma ideia?
android
android-edittext
Ryandlf
fonte
fonte
DialerKeyListener
vez deDigitsKeyListener
Respostas:
Experimente isto:
<EditText android:inputType="number" android:digits="0123456789." />
Do Código:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
Mas, permite ao usuário incluir vários "." Veja a resposta de JoeyRA para números reais.
fonte
TextView
fontes:// 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.
.
após 9?Experimente isto:
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)
Retorna um DigitsKeyListener que aceita os dígitos de 0 a 9, mais o sinal de menos (apenas no início) e / ou ponto decimal (apenas um por campo) se especificado.
Isso resolve o problema dos muitos '.' em EditText
fonte
setInputType
uma e outra vez, isso não substituirá o segundo pelo primeiro? Acho que você deveria usar,weightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
mas não tenho 100% de certezaUse
InputType.TYPE_NUMBER_FLAG_DECIMAL
.Veja também: Tipos de entrada .
fonte
Para entrada de endereço IP (vários pontos e números)
tentar
<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" />
fonte