2010-03-17 20 views

Respuesta

290

Debería ser algo así. pero nunca lo utilizó para TextView, solamente EditarTexto:

TextView tv = new TextView(this); 
int maxLength = 10; 
InputFilter[] fArray = new InputFilter[1]; 
fArray[0] = new InputFilter.LengthFilter(maxLength); 
tv.setFilters(fArray); 
+104

Sobre la base de que, podría ser mucho más limpio para ir: tv.setFilters (nueva InputFilter [] {new InputFilter.LengthFilter (10)}); –

+0

esto funcionó para mí – adrian4aes

+16

No podría decir simplemente "maxLength()" ... no, no, no ... eso sería demasiado fácil. tenían que hacer abstracción ... ¡yay! – giulio

52

probar este

int maxLengthofEditText = 4;  
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)}); 
+1

Esto funciona para mí, pero en Android 5.1 todavía puede seguir escribiendo letras, son yust "invisible" en el campo de entrada. Pero se muestran en la propuesta de texto. Y cuando intentas eliminar letras al final. – Radon8472

+7

Esto no es "otra manera" esta es la versión corta de la primera respuesta, de la misma manera. –

8

Una forma sencilla de límite de caracteres de edición de texto:

EditText ed=(EditText)findViewById(R.id.edittxt); 
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)}); 
4

Para aquellos de ustedes usando Kotlin

fun EditText.limitLength(maxLength: Int) { 
    filters = arrayOf(InputFilter.LengthFilter(maxLength)) 
} 

Entonces sólo puede utilizar una sencilla editText.limitLength (10)

+0

¿por qué no usar setMaxLength como nombre de función? usted podría aplicar esto a textview también ... gracias +1 :) – crgarridos

+0

Tengo otros métodos que siguen este patrón: limitDecimalPlaces, limitNumberOnly, limitAscii para ir junto con limitLength. – Kevin

0
 AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Title"); 


        final EditText input = new EditText(this); 
        input.setInputType(InputType.TYPE_CLASS_NUMBER); 
//for Limit...      
input.setFilters(new InputFilter[] {new InputFilter.LengthFilter(3)}); 
        builder.setView(input);