1、如何设置 EditText,使得只能输入数字或者某些字母呢?一、设置 EditText,只输入数字:方法 1:直接生成 DigitsKeyListener 对象就可以了。et_1.setKeyListener(new DigitsKeyListener(false,true);方法 2:在 EditText 中设置属性,android:numeric=“integer“ 即只能输入整数,如下 方法 3:新建一个 char,在里面添加允许输入的字符。如下editText.setKeyListener(new NumberKeyListener()protected char getAccepte
2、dChars()char numberChars=1,2,3,4,5,6,7,8,9,0,;return numberChars;Overridepublic int getInputType() / TODO Auto-generated method stubreturn android.text.InputType.TYPE_CLASS_PHONE;);二、设置 EditText 只能输入某些字母,如下面设置 edtitext 只能输入 AN,an 这些字母。方法如下:editText.setKeyListener(new NumberKeyListener()protected cha
3、r getAcceptedChars()char numberChars=a,b,c,d,e,f,A,B,C,D;return numberChars;);EditText et; et = (EditText) findViewById(R.id.et); / 方法 1:建立一个 DigitsKeyListener,然后把它设为你的 EditText 的 KeyListener DigitsKeyListener numericOnlyListener = new DigitsKeyListener(false,true); et.setKeyListener(numericOnlyList
4、ener); / 方法 2:为 EditText 设置一个 NumberKeyListener,然后重写 getAcceptedChars()方法和getInputType()方法 et.setKeyListener(new NumberKeyListener() Override protected char getAcceptedChars() return new char 1, 2, 3, 4, 5, 6, 7, 8,9, 0 ; Override public int getInputType() / TODO Auto-generated method stub return an
5、droid.text.InputType.TYPE_CLASS_PHONE; ); -01.EditText et; 02.et = (EditText) findViewById(R.id.et); 03./ 方法 1:建立一个 DigitsKeyListener,然后把它设为你的 EditText 的 KeyListener 04.DigitsKeyListener numericOnlyListener = new DigitsKeyListener(false,true); 05.et.setKeyListener(numericOnlyListener); 06./ 方法 2:为 E
6、ditText 设置一个 NumberKeyListener,然后重写 getAcceptedChars()方法和getInputType()方法 07.et.setKeyListener(new NumberKeyListener() 08. Override 09. protected char getAcceptedChars() 10. return new char 1, 2, 3, 4, 5, 6, 7, 8,9, 0 ; 11. 12. Override 13. public int getInputType() 14. / TODO Auto-generated method
7、stub 15. return android.text.InputType.TYPE_CLASS_PHONE; 16. 17.); 小结:第一种可以输入小数。第二种由于设置了 TYPE_CLASS_PHONE 所以只能输入整数。且比较灵活。=很多网友可能在开发 Android 时发现 EditText 有时候需要限制用户输入的内容,通常我们可以使用正则表达式直接限制,但是 Android 已经为我们准备好了 EditText 的输入类型,这样的比正则要有以下几点优势: 1. 开发更简单,执行速度高效。 2. 输入法默认会根据情况变动,比如说设置为numeric 后输入法会自动仅显示数字,不会
8、出现 Qwerty 中的字母。下面我们通过 EditText 的 layout xml 文件中的相关属性来实现:1. 密码框属性 android:password=“true“ 这条可以让 EditText 显示的内容自动为 星号,输入时内容会在 1 秒内变成*字样。2. 纯数字 android:numeric=“true“ 这条可以让输入法自动变为数字输入键盘,同时仅允许 0-9 的数字输入3. 仅允许 android:capitalize=“cwj1987“ 这样仅允许接受输入 cwj1987,一般用于密码验证下面是一些扩展的风格属性android:editable=“false“ 设置 EditText 不可编辑android:singleLine=“true“ 强制输入的内容在单行android:ellipsize=“end“ 自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时