Android每日范例——电话号码输入框

来源:互联网 发布:中银淘宝联名卡 编辑:程序博客网 时间:2024/06/03 20:20

EditText控件自定义的属性并不能包含所有我们需要的限定,因此Android在Java代码中提供了接口,让我们对它进行限定

电话号码输入框的实现步骤:
1、在XML布局中添加EditText控件
2、在java代码中获取EditText控件实例,设置监听器
XML布局代码
    <EditText         android:id="@+id/edittext"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint = "请输入电话号码"/>
Java代码:
为EditText添加监听器,监听器中有设置输入前、输入时、输入后的处理情况
private EditText edittext;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    edittext = (EditText) findViewById(R.id.edittext);    edittext.addTextChangedListener(new TextWatcher() {        @Override        //输入时        public void onTextChanged(CharSequence arg0, int arg1, int arg2,                int arg3) {            // TODO Auto-generated method stub        }        @Override        //输入前        public void beforeTextChanged(CharSequence arg0, int arg1,                int arg2, int arg3) {            // TODO Auto-generated method stub        }        @Override        //输入后        public void afterTextChanged(Editable arg0) {            // TODO Auto-generated method stub            String phoneStr = arg0.toString();            if (isPhoneNumber(phoneStr)) {                edittext.setTextColor(Color.rgb(0, 255, 0));            } else {                edittext.setTextColor(Color.rgb(255, 0, 0));            }        }        //自己编写的判断方法        private boolean isPhoneNumber(String phoneStr) {            String string = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";            Pattern pattern = Pattern.compile(string);            Matcher matcher = pattern.matcher(phoneStr);            return matcher.find();        }    });}
注:
电话号码的判断使用了正则表达式,对电话号码的匹配,这个匹配的是手机号
0 0
原创粉丝点击