2013-03-23 16 views
5

So come limitare la dimensione tramite XML (android: maxLength), ma sto creando dinamicamente una finestra di avviso nel codice. C'è qualcosa di simile che posso usare? (Preferisco anche una soluzione compatibile con API 10)Come limitare il numero di caratteri immessi in una finestra di dialogo di avvisi EditText

Sto utilizzando la finestra di avviso per richiedere all'utente di visualizzare un valore di testo in un secondo momento.

public void onClickPosition(View v) { 
    AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    alert.setTitle(R.string.title_Position); 
    alert.setMessage(R.string.message_Position); 

    final EditText input = new EditText(this); 
    input.setText(_currentClass.getPosition()); 
    alert.setView(input); 

    alert.setPositiveButton(R.string.option_Okay, new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
     _currentClass.setPosition(input.getText().toString()); 
     TextView textView = (TextView)findViewById(R.id.textPosition); 
     textView.setText(_currentClass.getPosition()); 
     } 
    }); 

risposta

5

provare qualcosa di simile:

InputFilter[] FilterArray = new InputFilter[1]; 
FilterArray[0] = new InputFilter.LengthFilter(MAX_LENGTH); 
input.setFilters(FilterArray); 
+0

Wow, è stato facile e funziona alla grande! Grazie! – RiddlerDev

+0

Prego. @ MH. È lo stesso, solo in una riga! – ElefantPhace

10

È possibile impostare la maxLength equivalente in codice per mezzo di un InputFilter. Supponiamo che ci si vuole il EditText ad accettare un massimo di 20 caratteri:

input.setFilters(new InputFilter[] { new InputFilter.LengthFilter(20) }); 

Dal setFilters() accetta una serie di filtri, è possibile aggiungere più di uno. Inoltre, ad esempio, se fosse necessario un maggiore controllo su quale tipo di caratteri dovrebbe essere consentito, è possibile implementare il proprio filtro e trasmetterlo con l'array.

Problemi correlati