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

Android EditText截获与监听输入事件

2012-05-09 09:15 260 查看
EditText作为给用户输入内容的控件,有时候为了需要,我们不得已要去监听用户输入的内容,比如限制只能输入中文、或者数字、或者电话号码、或者字母加数字。。。。等等吧。

怎么监听呢?前几天我这里涉及到一个地方,就是限制用户不能输入中文,那么如何判断呢?

有个办法就是用正则表达式,我也确实采用了这种办法,不过其实还有另外一种方式,就是判断用户输入内容的ASCII码,对每个字符都做一次判断。还有,就是获取用户输入内容的字节数和它的长度相比较,如果不相等,就是中文字符。这3种办法都可以实现这种效果。

第一种办法:

// if(Methods.isHaveChina(ddd)){ 
// Methods.log(this, "tag", "密码中含有中文,给他删掉");
// edt.delete(edt.length()-ddd.length(), edt.length());
// }

第二种办法:
// try {
// String temp = edt.toString();
// String tem = temp.substring(temp.length()-1, temp.length());
// char[] temC = tem.toCharArray();
// int mid = temC[0];
// if(mid>=48&&mid<=57){//数字
// return;
// }
// if(mid>=65&&mid<=90){//大写字母
// return;
// }
// if(mid>=97&&mid<=122){//小写字母
// return;
// }
// edt.delete(temp.length()-1, temp.length());
// } catch (Exception e) {
// try {
// throw new Exception("登录页面监听密码输入框只能输入数字或者英文出错");
// } catch (Exception e1) {
// e1.printStackTrace();
// }
// }

第三种办法:

String s = "ss";
if(s.length() != s.getBytes().length){
System.out.println(9);
}else{

System.out.println(8);
}

还有这些,看看也无妨:

输入框中每输入一个字符,下面的TextView可以迅速的显示出来输入框中的内容。

1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息