2010-03-17 2 views

ответ

290

Должно быть что-то в этом роде. но никогда не использовал его для TextView, только EditText:

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

Основываясь на том, что, возможно, было бы гораздо чище пойти: tv.setFilters (новый InputFilter [] {новый InputFilter.LengthFilter (10)}); –

+0

это сработало для меня – adrian4aes

+16

Не мог просто сказать «maxLength()» .. нет, нет, нет .. это было бы слишком легко. они должны были сделать абстрактное это .. yay! – giulio

52

Попробуйте

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

Это работает для меня, но в Android 5.1 вы все равно можете продолжать печатать буквы, а во входном поле - «невидимые». Но они показаны в текстовом предложении. И когда вы пытаетесь удалить буквы в конце. – Radon8472

+7

Это не «другой способ», это краткая версия первого ответа, так же. –

8

Легкий способ предела редактирования текста символ:

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

Для тех, кто использует Котлин

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

Тогда вы можете просто использовать простой editText.limitLength (10)

+0

почему не использовать setMaxLength как имя функции? вы можете применить это к textview также ... спасибо +1 :) – crgarridos

+0

У меня есть другие методы, которые следуют этому шаблону: limitDecimalPlaces, limitNumberOnly, limitAscii, чтобы идти вместе с 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); 
Смежные вопросы