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(),不过这种方式只能监听硬键盘事件。
怎么监听呢?前几天我这里涉及到一个地方,就是限制用户不能输入中文,那么如何判断呢?
有个办法就是用正则表达式,我也确实采用了这种办法,不过其实还有另外一种方式,就是判断用户输入内容的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(),不过这种方式只能监听硬键盘事件。
相关文章推荐
- Android EditText截获与监听输入事件
- Android EditText截获与监听输入事件
- Android EditText截获与监听输入事件
- 【转】Android EditText截获与监听输入事件
- Android:EditText输入事件截获与监听
- EditText输入事件截获与监听
- EditText输入事件截获与监听
- Android EditText缴获与监听输入事件
- EditText输入事件截获与监听
- Android 监听EditText文本输入 EditText监听事和输入事件
- EditText输入事件截获与监听
- android监听edittext输入事件
- EditText输入事件截获与监听
- EditText输入事件截获与监听
- EditText输入事件截获与监听
- EditText输入事件截获与监听
- Android EditText 监听输入完成
- Android中监听EditText文本输入
- android TextWatcher 监听textview和edittext的文字输入改变
- Android中Edittext监听回车事件