Android'de bir EditText'te sayı klavyesini nasıl gösterebilirim?


146

Temel olarak, belirli bir EditText odak noktasına sahip olur olmaz sayısal tuş takımı moduna geçmek istiyorum.


4
Soru, özellikle izin verilen giriş türünü değiştirme isteğini belirtmez. Giriş türünü değiştirmeden yapmak istediğim klavye modunun nasıl değiştirileceğini soruyor. Tüm yanıtlar, giriş türünün nasıl değiştirileceğini açıklar.
AlanKley

Bu soruya cevabımı kontrol edin stackoverflow.com/questions/39593324/…
Android Yardım

Yanıtlar:


264

Bir yapılandırabilir inputTypeşunlara ait EditText:

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

6
Ayrıca bunu kullanmak için Android 1.5'i hedeflemeniz gerektiğini unutmayın (1.1'de mevcut değildir)
Wilka

4
Sorun şu ki geri dönemezsin. "Sayı | metin" kullanmak da işe yaramaz. Görünüşe göre sayısal bir klavye göstermek istiyorsanız, metne geri dönmesine izin veremezsiniz.

Brian'a katılıyorum ... İlk alan alfa ise ve sonraki alan sayısal ise, 'İleri' düğmesini kullanarak bir sonraki alana gidemem!
Ahmed

Geri dönüp dönemeyeceğiniz telefona bağlı diye düşünüyorum. Benimki buna izin veriyor.
Martin Clemens Bloch

Klavye tip numarasını değiştirmek istiyorum ve metni edittext'e yapıştırmak istiyorum. Nasıl yapılır?
İbrahim YANIK

115

Bunu bir Java dosyasında yapmak için:

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

51

Bu uygulamayı yararlı buldum, daha iyi bir klavye gösteriyor ve giriş karakterlerini sınırlandırıyor.

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

Ek olarak, android:maxLengthmaksimum sayı miktarını sınırlamak için kullanabilirsiniz .

Bunu programlı olarak yapmak için:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

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

Bunu programlı olarak yapmanın bir yolu var mı? EditText'im için sınırlı sayıda klavye almak için can atıyorum, ancak etkinlikte oluşturulması gerekecek şekilde ayarlandı.
Martin Erlic

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

büyük sayısal tuş takımını çevirici olarak gösterecektir.


11

2 şekilde yapabilirsiniz

  1. Çalışma zamanı seti

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

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

5

Kesirli sayıya ihtiyacınız varsa, bu sizin için cevaptır:

android:inputType="numberDecimal"

4

EditText'inizi Dialog'da kullanıyorsanız veya dinamik olarak oluşturuyorsanız ve bunu xml'den ayarlayamıyorsanız, bu örnek dinamik Edit Text vb. Kullanırken bu tür klavye ayarlamanıza yardımcı olacaktır

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

myEditTxt dinamik DÜZENLEME METİN nesnesidir (ad)


3

Aşağıdaki kod yalnızca "0123456789" sayılarına izin verir, yanlışlıkla "0123456789" dışında yazsanız bile düzenleme metni kabul etmez.

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

Kodunuzu ve bunun neden çözüm olduğunu açıklayan yorum eklemelisiniz
cyroxis

2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Bir metni manuel olarak biçimlendiriyorsanız (para birimi gibi) ve yalnızca klavyeyi kontrol etmek istiyorsanız, seçim budur. Karakterlerinizi filtrelemeyecek. Teşekkürler!
lauksas

Bu benim için bir büyü gibi çalıştı. Henüz bir alan düzenlenmediğinde metinsel bir yer tutucu değeri görüntülemek, ancak yine de girişi sayılarla sınırlamak ve kısıtlı bir klavye görüntülemek istiyorum.
Alex Suzuki


2

Aşağıdaki kodu java dosyasında kullanın

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);


en iyi cevaba sahipsin !! Teşekkürler
Chego

0

Bunu xml kodunuzda tanımlayın

android:inputType="number"

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

Düzen xml kodunda oluşturulmuş EditText number1'e sahipseniz, Number Keyboard'u number1 EditText olarak ayarlamak istiyorsanız, Java Code'u kullanarak bu şekilde yapabilirsiniz.
Shiv Buyya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.