关于EditText的最大长度maxLength和密码类型InputType的获取
当在xml文件中声明了一个EditText 的时候,可能会加入这个属性 1 希望这个EditText 最多可以输入几位 应该假如这段代码 android:maxLength=”4“ 当希望这个editText 的长度初始化为几个字符长度的时候,假如这段代码android:ems=”10“ 那么想要在程序中获取这两个值的时候怎么办呢,有点麻烦了。 下面给出代码,以获取最大显示长度为例吧: **[html]** [view plain](http://blog.csdn.net/rually/article/details/38442539#)[copy](http://blog.csdn.net/rually/article/details/38442539#)[](https://code.csdn.net/snippets/446039)[](https://code.csdn.net/snippets/446039/fork) <div> </div> </div> - <span style="color: black;">public int getMaxLength() </span> - <span style="color: black;">{ </span> - <span style="color: black;"> int <span class="attribute" style="color: red;">length</span> =<span class="attribute-value" style="color: blue;"></span>; </span> - <span style="color: black;"> try </span> - <span style="color: black;"> { </span> - <span style="color: black;"> InputFilter[] <span class="attribute" style="color: red;">inputFilters</span> = <span class="attribute-value" style="color: blue;">getFilters</span>(); </span> - <span style="color: black;"> for(InputFilter filter:inputFilters) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> Class<span class="tag" style="font-weight: bold; color: #993300;"><?</span><span class="tag" style="font-weight: bold; color: #993300;">></span> <span class="attribute" style="color: red;">c</span> = <span class="attribute-value" style="color: blue;">filter</span>.getClass(); </span> - <span style="color: black;"> if(c.getName().equals(“android.text.InputFilter$LengthFilter”)) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> Field[] <span class="attribute" style="color: red;">f</span> = <span class="attribute-value" style="color: blue;">c</span>.getDeclaredFields(); </span> - <span style="color: black;"> for(Field field:f) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> if(field.getName().equals(“mMax”)) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> field.setAccessible(true); </span> - <span style="color: black;"> <span class="attribute" style="color: red;">length</span> = (Integer)field.get(filter); </span> - <span style="color: black;"> } </span> - <span style="color: black;"> } </span> - <span style="color: black;"> } </span> - <span style="color: black;"> } </span> - <span style="color: black;"> } </span> - <span style="color: black;"> catch (Exception e) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> e.printStackTrace(); </span> - <span style="color: black;"> } </span> - <span style="color: black;"> <span class="attribute" style="color: red;">mMaxLength</span> = <span class="attribute-value" style="color: blue;">length</span>; </span> - <span style="color: black;"> return length; </span> - <span style="color: black;">} </span> 这里面要用到Inputfilter ,然后再这些筛选条件中去找,找到你要的那个条件就ok了 ...