1、如何设置EditText,使得只能输入数字或者某些字母呢?
一、设置EditText,只输入数字:
方法1:直接生成DigitsKeyListener对象就可以了。
et_1.setKeyListener(new DigitsKeyListener(false,true));
方法2:在EditText中设置属性,android:numeric="integer"即只能输入整数,如下
2、 方法3:新建一个char[],在里面添加允许输入的字符。如下 editText.setKeyListener(new NumberKeyListener(){ protected char[] getAcceptedChars() { char[] numberChars[]={'1','2','3','4','5','6','7','8','9','0',}; return numberChars; } @Override public int getInputType() {
3、 // TODO Auto-generated method stub return android.text.InputType.TYPE_CLASS_PHONE; } }); 二、设置EditText只能输入某些字母,如下面设置edtitext只能输入A—N,a—n这些字母。方法如下: editText.setKeyListener(new NumberKeyListener(){ protected char[] getAcceptedChars() { char[] num
4、berChars[]={'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); e
5、t.setKeyListener(numericOnlyListener); // 方法2:为EditText设置一个NumberKeyListener,然后重写getAcceptedChars()方法和getInputType()方法 et.setKeyListener(new NumberKeyListener() { @Override protected char[] getAcceptedChars() { return new char[] { '1', '2', '3', '4', '5', '6', '7'
6、 '8','9', '0' }; } @Override public int getInputType() { // TODO Auto-generated method stub return android.text.InputType.TYPE_CLASS_PHONE; } }); -----------------------------------------------------------------------------------------
7、 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:为EditText设置一个NumberKeyListe
8、ner,然后重写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 i
9、nt getInputType() { 14. // TODO Auto-generated method stub 15. return android.text.InputType.TYPE_CLASS_PHONE; 16. } 17.}); 小结: 第一种可以输入小数。 第二种由于设置了TYPE_CLASS_PHONE所以只能输入整数。且比较灵活。 ============================================ 很多网友可能在开发Android时发现EditTe
10、xt有时候需要限制用户输入的内容,通常我们可以使用正则表达式直接限制,但是Android 已经为我们准备好了EditText的输入类型,这样的比正则要有以下几点优势: 1. 开发更简单,执行速度高效。 2. 输入法默认会根据情况变动,比如说设置为numeric后输入法会自动仅显示数字,不会出现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" 自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时






