2009-07-13 9 views
121

Ich möchte einfach nur in den Ziffernblockmodus wechseln, sobald ein bestimmter EditText den Fokus hat.Wie zeige ich die Nummerntastatur auf einem EditText in Android?

+4

Die Frage sagt nicht ausdrücklich den Wunsch, die erlaubt Eingabetyp zu ändern. Es fragt einfach, wie man den Tastaturmodus ändert, was ich tun möchte, ohne den Eingabetyp zu ändern. In allen Antworten wird erläutert, wie der Eingabetyp geändert wird. – AlanKley

+0

Überprüfen Sie meine Antwort zu dieser Frage http: // stackoverflow.com/questions/39593324/kann nicht-resolve-symbol-showsoftput/39593871 # 39593871 –

Antwort

224

Sie können eine inputType für Ihre EditText konfigurieren:

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

Das ist überraschend einfach. Prost –

+6

Beachten Sie auch, dass Sie Android 1.5 zielen müssen, um dies zu verwenden (es ist nicht in 1.1 verfügbar) – Wilka

+4

Das Problem ist, dass Sie nicht zurück wechseln können. Die Verwendung von "Nummer | Text" funktioniert auch nicht. Es scheint, wenn Sie eine numerische Tastatur zeigen möchten, können Sie nicht zulassen, dass sie zurück zum Text wechselt. –

107

es in einer Java-Datei zu tun:

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

ich diese Implementierung nützlich gefunden, eine Eingabe Zeichen bessere Tastatur und Grenzen zeigt.

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

Darüber hinaus können Sie android:maxLength verwenden, um die maximale Anzahl von Nummern zu begrenzen.

dies programmatisch zu tun:

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

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

Gibt es eine Möglichkeit, dies programmgesteuert zu tun? Ich möchte eine Tastatur mit begrenzter Nummer für meinen EditText, aber sie ist so eingerichtet, dass sie in der Aktivität generiert werden muss. – santafebound

3

Wenn Sie Ihren EditText in Dialog verwenden oder dynamisch erstellen und Sie können es nicht aus XML legen Sie dann in diesem Beispiel wird Ihnen helfen, in diese Art von Tastatur während der Einstellung Sie verwenden dynamischen Text bearbeitet etc

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 

wo myEditTxt das dynamische EDIT TEXT Objekt (Name)

10

Sie es 2 Möglichkeiten tun können

  1. Runtime gesetzt

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

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

wird die große Ziffernblock als Dialer zeigen.

+0

genau was ich brauche! – jjLin

0
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
2

Weitere Eingabetypen und Details gefunden here auf Google Website

4

Wenn Sie gebrochene Zahl benötigen, dann ist dies für Sie die Antwort lautet:

android:inputType="numberDecimal" 
0

diese Definition in der XML-Code

android:inputType="number" 
0

Verwenden Sie den folgenden Code in Java-Datei

editText.setRawInputType (Konfiguration.KEYBOARD_QWERTY);

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

Können Sie bitte den Code erklären? – MBH

Verwandte Themen