下面这段程序主要为了实现以下三个功能:
一、同步监听文本输入框的变化,默认继承以下三个方法,分别监听文本改变前、中、后; 二、同时用正则表达式判断输入的电话号码是否合法; 三、最后在activity展示一秒后,跳出软键盘;
package com.my; import java.util.Timer; import java.util.TimerTask; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; public class LoginCheckActivity extends Activity { private Button checkNextButton = null; private Button checkCancelButton = null; private EditText phoneEditText = null; private TextWatcher phoneTextWatcher; private String phoneNumber = null; private InputMethodManager imm; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.login_check); initView(); } private void initView() { // TODO Auto-generated method stub checkNextButton = (Button) findViewById(R.id.button_check_next); checkCancelButton = (Button) findViewById(R.id.button_check_cancel); phoneEditText = (EditText) findViewById(R.id.login_check_edittext); checkNextButton.setEnabled(false);//设置按钮为不可按 /** * 监听输入的手机号码是否正确 */ phoneTextWatcher = new TextWatcher() { @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub phoneNumber = phoneEditText.getText().toString(); if (isPhoneNumberValid(phoneNumber) == true) { checkNextButton.setEnabled(true); Log.e("@@@", "ture"); } else { checkNextButton.setEnabled(false); Log.e("@@@", "false"); } } }; phoneEditText.addTextChangedListener(phoneTextWatcher); } /** * 检查字符串是否为电话号码的方法,并返回true or false的判断值 */ public static boolean isPhoneNumberValid(String phoneNumber) { boolean isValid = false; /** 可接受的电话格式有: * ^//(? : 可以使用 "(" 作为开头 * (//d{3}): 紧接着三个数字 * //)? : 可以使用")"接续 * [- ]? : 在上述格式后可以使用具选择性的 "-". * (//d{3}) : 再紧接着三个数字 * [- ]? : 可以使用具选择性的 "-" 接续. * (//d{5})$: 以五个数字结束. * 可以比较下列数字格式: * (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890 */ String expression = "^//(?(//d{3})//)?[- ]?(//d{3})[- ]?(//d{5})$"; /** 可接受的电话格式有: * ^//(? : 可以使用 "(" 作为开头 * (//d{3}): 紧接着三个数字 * //)? : 可以使用")"接续 * [- ]? : 在上述格式后可以使用具选择性的 "-". * (//d{4}) : 再紧接着四个数字 * [- ]? : 可以使用具选择性的 "-" 接续. * (//d{4})$: 以四个数字结束. * 可以比较下列数字格式: * (02)3456-7890, 02-3456-7890, 0234567890, (02)-3456-7890 */ String expression2 = "^//(?(//d{3})//)?[- ]?(//d{4})[- ]?(//d{4})$"; CharSequence inputStr = phoneNumber; /*创建Pattern*/ Pattern pattern = Pattern.compile(expression); /*将Pattern 以参数传入Matcher作Regular expression*/ Matcher matcher = pattern.matcher(inputStr); /*创建Pattern2*/ Pattern pattern2 = Pattern.compile(expression2); /*将Pattern2 以参数传入Matcher2作Regular expression*/ Matcher matcher2 = pattern2.matcher(inputStr); if (matcher.matches())//|| matcher2.matches()) { isValid = true; } return isValid; } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(phoneEditText, 0); } }, 1000); } }
还有一种更简洁地判断手机号码的方法,如下:
/** * 判别手机是否为正确手机号码; *号码段分配如下: *移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 *联通:130、131、132、152、155、156、185、186 *电信:133、153、180、189、(1349卫通) */ public static boolean isMobileNum(String mobiles) { Pattern p = Pattern .compile("^((13[0-9])|(15[^4,//D])|(18[0,5-9]))//d{8}$"); Matcher m = p.matcher(mobiles); return m.matches();
ok!
您还没有登录,请您登录后再发表评论
这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 {{value}} <el-input v-model=value clearable size=small class=row-value @...
输入框事件监听输入框事件监听输入框事件监听
在做android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。
监听输入框值的即时变化onpropertychange与input事件的使用
主要介绍了js与jquery实时监听输入框值的oninput与onpropertychange方法,实例分析了oninput与onpropertychange实现下拉框里自动匹配关键字实时监听文本框value值变化的功能,需要的朋友可以参考下
主要介绍了Android广播接实现监听电话状态(电话的状态,拦截) 的相关资料,需要的朋友可以参考下
主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
js监听输入框值的即时变化onpropertychange、oninput.docx
layui的正则表达式是在form表单中完成的。所以第一步要在你的html中加上指定的form 。 官方参考文档:https://www.layui.com/doc/element/form.html 要保证引用的layui模块中有form.js存在。 快速步骤引用form.js...
//建立监听 FrameListener fl = new FrameListener(jb,tf,pw); //tf.addActionListener(fl); tf.addKeyListener(fl); //窗口可见 this.setVisible(true); //关闭窗口时退出程序 this....
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
EditText监听输入完成,监听edittext,精确判断什么时候输入完成
Android来去电监听,电话挂断
主要介绍了 Android onKeyDown监听返回键无效的解决办法的相关资料,需要的朋友可以参考下
android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...
js与jquery实时监听输入框值的oninput与onpropertychange方法.docx
android NotificationListenerService 监听通知栏,android NotificationListenerService 监听通知栏 android NotificationListenerService 监听通知栏
Android中监听电话状态.zip
android 充值页面效果源码 1.要求是只能输入数字,最多小数点...6.控制输入框中的输入,利用正则表达式结合TextWatcher() 监听器,当输入不符合规定时,动态改变显示的数字(要避免进入死循环),再实时更新到小计一栏。
相关推荐
这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 {{value}} <el-input v-model=value clearable size=small class=row-value @...
输入框事件监听输入框事件监听输入框事件监听
在做android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。
监听输入框值的即时变化onpropertychange与input事件的使用
主要介绍了js与jquery实时监听输入框值的oninput与onpropertychange方法,实例分析了oninput与onpropertychange实现下拉框里自动匹配关键字实时监听文本框value值变化的功能,需要的朋友可以参考下
主要介绍了Android广播接实现监听电话状态(电话的状态,拦截) 的相关资料,需要的朋友可以参考下
主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
js监听输入框值的即时变化onpropertychange、oninput.docx
layui的正则表达式是在form表单中完成的。所以第一步要在你的html中加上指定的form 。 官方参考文档:https://www.layui.com/doc/element/form.html 要保证引用的layui模块中有form.js存在。 快速步骤引用form.js...
//建立监听 FrameListener fl = new FrameListener(jb,tf,pw); //tf.addActionListener(fl); tf.addKeyListener(fl); //窗口可见 this.setVisible(true); //关闭窗口时退出程序 this....
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
EditText监听输入完成,监听edittext,精确判断什么时候输入完成
Android来去电监听,电话挂断
主要介绍了 Android onKeyDown监听返回键无效的解决办法的相关资料,需要的朋友可以参考下
android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...
js与jquery实时监听输入框值的oninput与onpropertychange方法.docx
android NotificationListenerService 监听通知栏,android NotificationListenerService 监听通知栏 android NotificationListenerService 监听通知栏
Android中监听电话状态.zip
android 充值页面效果源码 1.要求是只能输入数字,最多小数点...6.控制输入框中的输入,利用正则表达式结合TextWatcher() 监听器,当输入不符合规定时,动态改变显示的数字(要避免进入死循环),再实时更新到小计一栏。