Jak wyświetlić klawiaturę numeryczną w EditText w systemie Android?


146

Po prostu chcę przejść do trybu klawiatury numerycznej, gdy tylko określony EditText stanie się aktywny.


4
Pytanie nie określa konkretnie chęci zmiany dozwolonego typu danych wejściowych. Po prostu pyta, jak zmienić tryb klawiatury, co chciałbym zrobić bez zmiany typu wprowadzania. Wszystkie odpowiedzi wyjaśniają, jak zmienić typ danych wejściowych.
AlanKley

Sprawdź moją odpowiedź na to pytanie stackoverflow.com/questions/39593324/ ...
Pomoc Androida

Odpowiedzi:


261

Możesz skonfigurować inputTypedla swojego EditText:

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

6
Zwróć też uwagę, że aby z tego korzystać, musisz wybrać system Android 1.5 (nie jest dostępny w wersji 1.1)
Wilka

4
Problem w tym, że nie możesz wrócić. Używanie "liczba | tekst" też nie działa. Wygląda na to, że jeśli chcesz wyświetlić klawiaturę numeryczną, nie możesz pozwolić jej przełączyć się z powrotem na tekst.

Zgadzam się z Brianem… jeśli pierwsze pole jest alfa, a następne jest numeryczne, nie mogę przejść do następnego pola przyciskiem „Dalej”!
Ahmed

Myślę, że możesz wrócić, czy nie, zależy to od telefonu. Mój na to pozwala.
Martin Clemens Bloch

Chcę zmienić numer typu klawiatury i chcę wkleić tekst w edytorze. Jak zrobić?
İbrahim YANIK

115

Aby to zrobić w pliku Java:

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

51

Uważam, że ta implementacja jest przydatna, pokazuje lepszą klawiaturę i ogranicza znaki wejściowe.

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

Dodatkowo możesz użyć, android:maxLengthaby ograniczyć maksymalną liczbę liczb.

Aby zrobić to programowo:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

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

Czy istnieje sposób, aby zrobić to programowo? Umiera, aby dostać klawiaturę z ograniczoną liczbą dla mojego EditText, ale jest skonfigurowana w taki sposób, że musi zostać wygenerowana w działaniu.
Martin Erlic

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

pokaże dużą klawiaturę numeryczną jako dialer.


11

Możesz to zrobić na dwa sposoby

  1. Zestaw uruchomieniowy

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

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

5

Jeśli potrzebujesz liczby ułamkowej, oto odpowiedź dla Ciebie:

android:inputType="numberDecimal"

4

Jeśli używasz EditText w oknie dialogowym lub tworzysz dynamicznie i nie możesz ustawić go z xml, ten przykład pomoże ci ustawić ten typ klawiatury podczas korzystania z dynamicznej edycji tekstu itp.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

gdzie myEditTxt to dynamiczny obiekt EDIT TEXT (nazwa)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Jeśli ręcznie formatujesz tekst (na przykład walutę) i chcesz sterować tylko klawiaturą, to jest wybór. Nie będzie filtrować Twoich znaków. Dzięki!
lauksas

To zadziałało na mnie jak urok. Chcę wyświetlić tekstową wartość zastępczą, gdy pole nie zostało jeszcze edytowane, ale nadal ograniczam dane wejściowe do liczb i wyświetlam ograniczoną klawiaturę.
Alex Suzuki,


2

Poniższy kod dopuszcza tylko cyfry „0123456789”, nawet jeśli przypadkowo wpiszesz inny niż „0123456789”, tekst edycji nie zostanie zaakceptowany.

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

Powinieneś dodać komentarz wyjaśniający twój kod i dlaczego jest to rozwiązanie
cyroxis

1

Użyj poniższego kodu w pliku java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);



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

Jeśli masz EditText number1 utworzony w kodzie XML układu, to jeśli chcesz ustawić klawiaturę numeryczną na numer 1 EditText, możesz to zrobić za pomocą kodu Java.
Shiv Buyya
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.