无法从EditText获取maxLength! (InputFilter.LengthFilter没有长度参数,现在是什么?)

时间:2011-08-22 14:55:27

标签: android properties android-edittext

我尝试获取EditText的过滤器,但InputFilter.LengthFilter没有LENGTH(或SIZE或其他)参数!

所以,我使用EditText无法获得InputFilter最大长度!

我错过了什么吗?有什么建议吗?

2 个答案:

答案 0 :(得分:0)

为什么要尝试“获取”InputFilter.LengthFilter的长度?您应该已经知道设置它的长度。

如果您需要更改它,只需重置过滤器并将其应用于EditText视图。同样,您将知道长度值的设置。

答案 1 :(得分:0)

尝试创建自定义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();
}