Jawaban:
Saya kira android:inputType="number"
atribut XML.
android:inputType="phone"
sebagai gantinya. Tapi sepertinya sedikit lebih "sibuk".
Sebagai contoh:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
0123456789.
dan tidak0123456780.
Hanya untuk penggunaan input digit android:inputType="numberPassword"
bersama dengan editText.setTransformationMethod(null);
untuk menghapus menyembunyikan nomor secara otomatis.
ATAU
android:inputType="phone"
Untuk input digit saja, saya merasa cara pasangan ini lebih baik daripada android:inputType="number"
. Batasan menyebutkan "angka" sebagai inputType adalah keyboard memungkinkan untuk beralih ke karakter dan juga memungkinkan karakter khusus lainnya dimasukkan. inputType "numberPassword" tidak memiliki masalah tersebut karena keyboard hanya menampilkan angka. Bahkan inputType "telepon" berfungsi karena keyboard tidak memungkinkan Anda untuk beralih ke karakter. Tetapi Anda masih dapat memasukkan beberapa karakter khusus seperti +, /, N, dll.
android: inputType = "numberPassword" dengan editText.setTransformationMethod (null);
inputType = "telepon"
inputType = "number"
android:inputType="numberPassword"
bersama denganeditText.setTransformationMethod(null);
android:inputType="numberDecimal"
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
menggunakan di bawah ini dapat memecahkan masalah Anda dengan lebih baik;
dalam xml:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
atau // dalam aktivitas di dalam etfield.addtextchangelistener
private String blockCharacterSet="+(/)N,*;#";//declare globally
try {
for (int i = 0; i < s.length(); i++) {
if (blockCharacterSet.contains(s.charAt(i) + "")) {
String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
et_ArrivalSetTemp.setText(corrected_settempvalue);
if (corrected_settempvalue.length() != 0)
et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());
}
}
} catch (Exception d) {
d.printStackTrace();
}
Jika ada yang ingin hanya menggunakan angka dari 0 hingga 9 dengan imeOptions
mengaktifkan maka gunakan baris di bawah ini diEditText
android: inputType = "number | none"
Ini hanya akan memungkinkan angka dan jika Anda mengklik tombol keyboard selesai / berikutnya fokus Anda akan pindah ke bidang berikutnya.
Anda bisa menggunakannya dalam XML
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
atau,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
atau,
android:inputType="phone"
Secara terprogram Anda dapat menggunakan
editText.setInputType (InputType.TYPE_CLASS_NUMBER);
Saya perlu menangkap menekan Enter pada keyboard dengan TextWatcher . Tapi saya menemukan bahwa semua keyboard numerik android: inputType = "number" atau "numberDecimal" atau "numberPassword" dll tidak mengizinkan saya menangkap Enter saat pengguna menekannya.
Saya mencoba android:digits="0123456789\n"
dan semua keyboard numerik mulai bekerja dengan Enter dan TextWatcher.
Jadi cara saya adalah:
android:digits="0123456789\n"
android:inputType="numberPassword"
plus editText.setTransformationMethod(null)
Terima kasih kepada barmaley dan abhiank.
Saya tidak tahu apa jawaban yang benar di '13, tapi hari ini jawabannya:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
Anda mendapatkan semuanya, termasuk keyboard di layar adalah keypad numerik.
Hampir semuanya. Espresso, dalam kebijaksanaannya yang tak terbatas, memungkinkan typeText("...")
memintas filter dan memasukkan sampah ...
yang paling sederhana bagi saya
android:numeric="integer"
Meskipun ini juga lebih banyak menyesuaikan
android:digits="0123456789"