Saya pada dasarnya mencoba untuk mengatur nilai digit dari EditText secara terprogram. Sejauh ini saya memiliki:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Tidak masalah, tetapi saya juga ingin memasukkan tempat desimal (.). Ada ide?
android
android-edittext
ryandlf.dll
sumber
sumber
DialerKeyListener
daripadaDigitsKeyListener
Jawaban:
Coba ini:
<EditText android:inputType="number" android:digits="0123456789." />
Dari Kode:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
Tapi, ini memungkinkan pengguna untuk memasukkan beberapa "." Lihat jawaban JoeyRA untuk bilangan real.
sumber
TextView
sumber:// 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.
.
setelah jam 9?Coba ini:
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)
Mengembalikan DigitsKeyListener yang menerima angka 0 sampai 9, ditambah tanda minus (hanya di awal) dan / atau titik desimal (hanya satu per bidang) jika ditentukan.
Ini memecahkan masalah tentang banyak '.' di EditText
sumber
setInputType
sekali dan lagi, bukankah itu akan menimpa yang kedua ke yang pertama? Saya pikir Anda harus menggunakanweightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
tetapi saya tidak 100% yakinGunakan
InputType.TYPE_NUMBER_FLAG_DECIMAL
.Lihat juga: Jenis Input .
sumber
Untuk masukan alamat IP (Beberapa titik dan angka)
mencoba
<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" />
sumber
jika ada yang masih menemukan cara yang tepat, perhatikan bahwa
setRawInputType()
tidaksetInputType()
val digits = "ABCDabcd" // or any characters you want to allow editText.keyListener = DigitsKeyListener.getInstance(digits) editText.setRawInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME)
sumber