Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入

一些非法字符等,这些需求有些可以使用android控件属性直接写在布局xml文件里,比如android:numeric="integer"(只允

许输入数字);

对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误提示),做成动态判断更方便一些,而且容易扩展;

在Android里使用TextWatcher接口可以很方便的对EditText进行监听;TextWatcher中有3个函数需要重载:

public void beforeTextChanged(CharSequence s, int start, int count, int  after);

public void onTextChanged(CharSequence s, int start, int before,  int count);

public void afterTextChanged(Editable s);

从函数名就可以知道其意思,每当敲击键盘编辑框的文字改变时,上面的三个函数都会执行,beforeTextChanged可以给出变化之前的内容,onTextChanged和afterTextChanged给出追加上新的字符之后的文本;

所以对字符的限制判断可以在afterTextChanged函数中进行,如果检查到新追加的字符为认定的非法字符,则在这里将其delete掉,那么他就不会显示在编辑框里了

更多相关文章

  1. 分支和循环(二)(零基础学习C语言)
  2. 【Android注释技巧】Android函数上面的注释你是怎么写的?(Eclipse
  3. android studio NDK编程
  4. Android(安卓)EditText清除焦点
  5. Android下led控制(下)--Linux驱动部分--platform机制
  6. Android(安卓)Handler解析
  7. AndroidLinker与SO加壳技术
  8. Android(安卓)JNI输出LOG
  9. Dex文件结构

随机推荐

  1. 从两个数组生成JSON
  2. 使用谷歌地图computeDistanceBetween获取
  3. ajax请求中URL和参数的编码问题
  4. 在KENDO UI Multiselect中选择默认值
  5. 在jQuery datetimepicker中禁用特定时间
  6. 桌面视图中的SlikNav多级菜单?
  7. 显示json数组中的所有项目
  8. 图表。js数据数组使用PHP, MySQL。如何从
  9. Regexp exec列表的url由昏迷“,*”分隔
  10. JavaScript 最佳实践:帮你提升代码质量