2010-03-17 7 views

Répondre

290

Devrait être quelque chose comme ça. mais jamais utilisé pour textview, seulement edittext:

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

bâtiment sur ce, il pourrait être beaucoup plus propre pour aller: tv.setFilters (nouveau InputFilter [] {new InputFilter.LengthFilter (10)}) –

+0

cela a fonctionné pour moi – adrian4aes

+16

Pourrait ne pas simplement dire "maxLength()" .. non, non, non .. ce serait trop facile. ils devaient faire abstraction ça .. yay! – giulio

52

Essayez cette

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

Cela fonctionne pour moi, mais dans Android 5.1 vous pouvez toujours continuer à taper des lettres, les yust sont "invisibles" dans le champ de saisie. Mais ils sont montrés dans la proposition de texte. Et quand vous essayez de supprimer des lettres à la fin. – Radon8472

+7

Ce n'est pas "une autre façon" c'est la version courte de la première réponse, de la même manière. –

8

moyen facile limite caractère modifier texte:

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

Pour ceux utilisant Kotlin

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

Ensuite, vous pouvez simplement utiliser un simple editText.limitLength (10)

+0

pourquoi ne pas utiliser setMaxLength comme nom de fonction? vous pouvez aussi appliquer ceci à textview ... merci +1 :) – crgarridos

+0

J'ai d'autres méthodes qui suivent ce modèle: limitDecimalPlaces, limitNumberOnly, limitAscii pour aller avec 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); 
Questions connexes