您的位置:首页 > 移动开发 > Android开发

android项目中edittext的一些总结

2014-01-14 14:16 477 查看
1   EditText可以设置接受各式各样的字符,通过过滤指定的字符来满足不同应用的输入和显示要求。
 通过xml配置:
android:InputType
number                               接受整数输入
numberSigned                  接受有符号整数输入
numberDecimal                接受整数和小数的输入
 android:digits
指定接受固定的数字,如android:digits="012345",则只接受0~5数字的输入
 android:numberic
integer                                 接受整数输入
signed                                 接受有符号整数输入
decimal                               接受整数和小数输入 
通过java代码设置
其实以上3个属性,功能有点重复,最终都是通过java代码来对TextView设置KeyListener
KeyListener是一个接口,提供了对输入键盘按键的监听
InputFilter是一个接口,提供了对字符的过滤
android提供了实现了KeyListener和InputFilter的NumberKeyListener,而DigitsKeyListener继承了NumberKeyListener

[c-sharp] view
plaincopy

EditText et = new EditText(context);  

//只接受整数输入  

KeyListener l = new DigitsKeyListener(fasle,false);  

//接受有符号整数输入  

KeyListener l = new DigitsKeyListener(true,false);  

//接受小数,整数输入  

KeyListener l = new DigitsKeyListener(false,true);  

//接受有符号整数/小数输入  

KeyListener l = new DigitsKeyListener(true,true);  

et.setKeyListener(l);  

如果想要实现更大自由度的过滤定制,可以自己写一个KeyListener(继承BaseKeyListener)并实现InputFilter,重写filter()函数,在filter()函数里可以实现自由的过滤。
2  监听EditText的变化

使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:



 当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。

开发者可以使用此方法监听用户输入字符的个数,或者对用户输入的内容进行实时监测等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息