当在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了
2 当你希望这个文本框输入密码的时候,要加入这样的条件
**[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;"><span class="attribute" style="color: red;">android:inputType</span>=<span class="attribute-value" style="color: blue;">“textPassword”</span> </span>
不要用password=”true” ,out了
那么想要在程序里面获取这个属性的时候应该怎么写呢?
看这段代码吧,别管什么意思,不大容易看明白,肯定是可以的
**[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;">/** </span>
- <span style="color: black;"> * judge wether the editTextView’s inputType is password or normal </span>
- <span style="color: black;"> * </span>
- <span style="color: black;"> **/ </span>
- <span style="color: black;">public boolean isPasswordType() </span>
- <span style="color: black;">{ </span>
- <span style="color: black;"> int <span class="attribute" style="color: red;">inputType</span> = <span class="attribute-value" style="color: blue;">this</span>.getInputType(); </span>
- <span style="color: black;"> final int <span class="attribute" style="color: red;">variation</span> = </span>
- <span style="color: black;"> <span class="attribute-value" style="color: blue;">inputType</span> & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION); </span>
- <span style="color: black;"> return <span class="attribute" style="color: red;">variation</span> </span>
- <span style="color: black;"> == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD) </span>
- <span style="color: black;"> || <span class="attribute" style="color: red;">variation</span> </span>
- <span style="color: black;"> == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD) </span>
- <span style="color: black;"> || <span class="attribute" style="color: red;">variation</span> </span>
- <span style="color: black;"> == (EditorInfo.TYPE_CLASS_NUMBER | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD); </span>
- <span style="color: black;">} </span>
这样就可以判断了,这个函数我也是在 textView 中找到的。
💬 评论