Domanda

Ho appena fondamentalmente voglio passare alla modalità tastierino numerico non appena un certo EditText ha il focus.

È stato utile?

Soluzione

È possibile configurare un inputType per il EditText :

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

Altri suggerimenti

Per fare in un file Java:

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

Ho trovato questa implementazione utile, mostra una migliore tastiera e limita caratteri di input.

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

Inoltre, è possibile utilizzare android:maxLength per limitare la quantità massima di numeri.

Per fare questo a livello di codice:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

mostrerà il gran numero di pad come dialer.

Si può fare 2 modi

  1. set Runtime

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

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

Se avete bisogno di numero frazionario, allora questa è la risposta per voi:

android:inputType="numberDecimal"

Se si utilizza l'EditText nella finestra di dialogo o la creazione in modo dinamico e non è possibile impostare da xml, allora questo esempio vi aiuterà nella creazione di questo tipo di tastiera mentre si sta utilizzando dinamica Modifica testo etc

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

dove myEditTxt è l'oggetto EDIT testo dinamico (nome)

Altri tipi di input e dettagli trovato qui sul sito web di Google

Di seguito il codice consente solo numeri "0123456789” , anche se accidentalmente tipo diverso da" 0123456789” , modifica del testo non accetterà.

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

Utilizza il codice qui sotto nel file di java

  

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

Definisci questa nel codice XML

android:inputType="number"
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top