Не могу получить maxLength от EditText!(InputFilter.LengthFilter не имеет параметра длины, что теперь?) - PullRequest
4 голосов
/ 22 августа 2011

Я пытался получить фильтры EditText, но InputFilter.LengthFilter не имеет параметра ДЛИНА (или РАЗМЕР, или что-то)!

Итак, я не могу получить EditText максимальную длину, используя InputFilter!

Я что-то упустил? Есть предложения?

Ответы [ 2 ]

0 голосов
/ 09 октября 2014

Попробуйте создать собственный фильтр InputLength.Это будет выглядеть примерно так: (CustomLengthFilter.java) import android.text.InputFilter;

 public class CustomLengthFilter extends InputFilter.LengthFilter {
  int maxLength;

  public CustomLengthFilter(int max) {
    super(max);
    maxLength = max;
  }

  public int get_MaxLength(){
    return maxLength;
  }
}

Затем в вашем editText:

InputFilter[] inputFilterCollection = this.getFilters();
CustomLengthFilter mCustomLengthFilter = null;
for(InputFilter eachInputFilter : inputFilterCollection){
    if(eachInputFilter instanceof CustomLengthFilter){
            mCustomLengthFilter = (CustomLengthFilter) eachInputFilter;
    }
}
if(mCustomLengthFilter != null){
    int maxLength = mCustomLengthFilter.get_MaxLength();
}
0 голосов
/ 14 июня 2013

Почему вы пытаетесь "получить" длину InputFilter.LengthFilter? Вы уже должны знать, какая это длина, когда вы ее устанавливаете.

Если вам нужно изменить его, просто сбросьте фильтр и примените его к представлению EditText. Опять же, вы бы знали, какое значение длины установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...