博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
28、editText只输入英文字母和'-',用于授权码输入
阅读量:6281 次
发布时间:2019-06-22

本文共 2835 字,大约阅读时间需要 9 分钟。

1 InputFilter filter = new InputFilter() { 2  3             @Override 4             public CharSequence filter(CharSequence source, int start, int end, 5                     Spanned dest, int dstart, int dend) { 6                 // TODO Auto-generated method stub 7                 for (int i = start; i < end; i++)  8                 { 9                     //在这里判断输入的只能是英文字母和符号'-'10                     if (!Character.isLetter(source.charAt(i))11                             && source.charAt(i) != '-') 12                     {13                         return "";14                     }15                 }16                 return null;17             }18         };19 20         etActivteCode.setFilters(new InputFilter[] { filter });21         etActivteCode.addTextChangedListener(new TextWatcher() {22 23             @Override24             public void onTextChanged(CharSequence s, int start, int before,25                     int count) {26                 // TODO Auto-generated method stub27 28                 etActivteCode.removeTextChangedListener(this);// 解除文字改变事件29 30                 if ((s.length() == 4 || s.length() == 9 || s.length() == 14)) {31                     etActivteCode.setText(s.toString().toUpperCase() + "-");// 转换32                 } else {33                     etActivteCode.setText(s.toString().toUpperCase());// 转换34                 }35 36                 etActivteCode.setSelection(s.toString().length());// 重新设置光标位置37                 etActivteCode.addTextChangedListener(this);// 重新绑38                 String licensePlateNumber = etActivteCode.getText().toString()39                         .trim();40             }41 42             @Override43             public void beforeTextChanged(CharSequence s, int start, int count,44                     int after) {45                 // TODO Auto-generated method stub46             }47 48             @Override49             public void afterTextChanged(Editable s) {50                 // TODO Auto-generated method stub51 52                 if (s.length() == 19) {53                     buttonActivate.setVisibility(View.VISIBLE);54                     InputMethodUtils.HideKeyboard(etActivteCode);55                 }56 57             }58         });59         etActivteCode.setOnKeyListener(new OnKeyListener() {60             @Override61             public boolean onKey(View v, int keyCode, KeyEvent event) {62                 // TODO Auto-generated method stub63                 if (keyCode == KeyEvent.KEYCODE_DEL) {64                     CommonUtils.LogWuwei(tag, "delete");65                     etActivteCode.setText("");66                     buttonActivate.setVisibility(View.INVISIBLE);67                 }68                 return false;69             }70         });71     }

 

 

效果如下:

转载于:https://www.cnblogs.com/kunyashaw/p/4348795.html

你可能感兴趣的文章
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>