2012-05-18 12 views
14

Inserirò in questo codice un controllo su EditText in modo che accetti solo numeri esadecimali. Come faccio a fare questo?Come si imposta EditText sull'input di soli numeri esadecimali?

bin = (EditText)findViewById(R.id.editText02); 
hex = (EditText)findViewById(R.id.editText3); 
dec = (EditText)findViewById(R.id.editText1); 
oct = (EditText)findViewById(R.id.editText04); 
+0

setInputType utente() in EditText .. –

risposta

3

TextWatcher è anche una buona opzione, tuttavia preferisco utilizzare filtri personalizzati. in tal modo, modo più semplice è quello di utilizzare InputFilter e prendere il controllo di ogni char al volo, vedi esempio sotto, spero che questo aiuta

import android.text.InputFilter; 
    import android.text.InputType; 

    EditText input_moodMsg; 
    // initialize this edittext etc etc 
    //.... 
    // here comes the filter to control input on that component 
    InputFilter inputFilter_moodMsg = new InputFilter() { 
       @Override 
       public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) { 

        if (source.length()>44) return "";// max 44chars 

// Here you can add more controls, e.g. allow only hex chars etc 

        for (int i = start; i < end; i++) { 
         if (!Character.isLetterOrDigit(source.charAt(i)) && !Character.isSpaceChar(source.charAt(i)) 
           && source.charAt(i)!='-' 
           && source.charAt(i)!='.' 
           && source.charAt(i)!='!' 
           ) { 
          return "";  
         }  
        } 
        return null; 
       } 
      }; 
      input_moodMsg.setFilters(new InputFilter[] { inputFilter_moodMsg }); 
      input_moodMsg.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
0

per ottenere il controllo di ciò che l'utente può digitare, aggiungere TextWatcher ai tuoi EditTexts.

36

Nel file di layout XML androide aggiungere i seguenti attributi per EditText:

<EditText 
android:digits="ABCDEF" 
android:inputType="textCapCharacters" 
/> 

Il primo attributo consente solo l'input con questi numeri. Qualsiasi altro input viene rifiutato e non visualizzato. Il secondo attributo capitalizza i caratteri.

merito va a questo post del blog: http://mobile.antonio081014.com/2012/04/how-to-let-input-of-edittext-only-be.html

+0

Aggiunta di Android: maxLength = "2", se scrivo "TT11", quindi l'EditText rimane vuoto, invece di mantenendo "11". – jsanmarb

Problemi correlati