Bagaimana cara menunjukkan papan tombol angka pada EditText di android?


146

Saya pada dasarnya hanya ingin beralih ke mode pad nomor segera setelah EditText tertentu memiliki fokus.


4
Pertanyaannya tidak secara spesifik menyatakan keinginan untuk mengubah tipe input yang diizinkan. Itu hanya bertanya bagaimana mengubah mode keyboard yang ingin saya lakukan tanpa mengubah tipe input. Semua jawaban menjelaskan cara mengubah tipe input.
AlanKley

Periksa jawaban saya untuk pertanyaan ini stackoverflow.com/questions/39593324/…
Bantuan Android

Jawaban:


261

Anda dapat mengonfigurasi inputTypeuntuk EditText:

<EditText android:inputType="number" ... />

6
Perhatikan juga bahwa Anda perlu menargetkan Android 1.5 untuk menggunakan ini (ini tidak tersedia di 1.1)
Wilka

4
Masalahnya adalah Anda tidak dapat beralih kembali. Menggunakan "angka | teks" juga tidak berfungsi. Tampaknya jika Anda ingin menampilkan keyboard angka, Anda tidak dapat membolehkannya kembali ke teks.

Saya setuju dengan Brian..jika bidang pertama alfa dan bidang berikutnya numerik, saya tidak bisa pergi ke bidang berikutnya menggunakan tombol 'Berikutnya'!
Ahmed

Apakah Anda dapat kembali atau tidak tergantung pada telepon saya pikir. Milik saya memungkinkan.
Martin Clemens Bloch

Saya ingin mengubah nomor jenis keybord dan saya ingin menempelkan teks di edittext. Bagaimana melakukan?
İbrahim YANIK

115

Untuk melakukannya dalam file Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

51

Saya menemukan implementasi ini bermanfaat, menunjukkan keyboard yang lebih baik dan membatasi karakter input.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

Selain itu, Anda dapat menggunakan android:maxLengthuntuk membatasi jumlah angka maksimal.

Untuk melakukan ini secara terprogram:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);

Apakah ada cara untuk melakukan ini secara terprogram? Sangat ingin mendapatkan papan ketik angka terbatas untuk EditText saya tetapi sudah diatur sedemikian rupa sehingga harus dihasilkan dalam aktivitas.
Martin Erlic

18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

akan menampilkan tombol angka besar sebagai dialer.


11

Anda bisa melakukannya dengan 2 cara

  1. Set waktu runtime

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. Menggunakan XML

    <EditText
        ...
        android:inputType="number" />
    

5

Jika Anda membutuhkan nomor fraksional, maka ini adalah jawaban untuk Anda:

android:inputType="numberDecimal"

4

Jika Anda menggunakan EditText dalam Dialog atau membuat secara dinamis dan Anda tidak dapat mengaturnya dari xml maka contoh ini akan membantu Anda dalam mengatur jenis papan kunci tersebut saat Anda menggunakan Edit Teks dinamis dll.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

di mana myEditTxt adalah objek EDIT TEXT dinamis (nama)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Jika Anda memformat teks secara manual (seperti untuk mata uang) dan hanya ingin mengontrol keyboard, itulah pilihannya. Tidak akan memfilter karakter Anda. Terima kasih!
lauksas

Ini bekerja seperti pesona bagi saya. Saya ingin menampilkan nilai placeholder teks ketika bidang belum diedit, tetapi masih membatasi input ke angka dan menampilkan keyboard terbatas.
Alex Suzuki


2

Kode di bawah ini hanya akan memungkinkan angka "0123456789", bahkan jika Anda secara tidak sengaja mengetik selain "0123456789", teks edit tidak akan menerima.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));

Anda harus menambahkan komentar yang menjelaskan kode Anda dan mengapa itu solusinya
cyroxis

1

Gunakan kode di bawah ini dalam file java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);


0

Tentukan ini dalam kode xml Anda

android:inputType="number"

0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

Jika Anda memiliki EditText number1 yang dibuat dalam kode tata letak xml, maka jika Anda ingin mengatur Keyboard Angka ke number1 EditText, Anda dapat melakukannya dengan menggunakan Java Code.
Shiv Buyya
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.