如何在Android中实现一个银行卡,手机号格式

  介绍

如何在Android中实现一个银行卡,手机号格式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

工具类:

package  com.gongzhibao.gzb.widget;   ,   import  android.content.Context;   import  android.content.res.TypedArray;   import  android.support.v7.widget.AppCompatEditText;   import  android.text.Editable;   import  android.text.InputFilter;   import  android.text.InputType;   import  android.text.TextUtils;   import  android.text.TextWatcher;   import  android.text.method.DigitsKeyListener;   import  android.util.AttributeSet;   import  android.widget.Toast;   ,   import  com.gongzhibao.gzb.R;   ,/* *   ,*银行卡,手机,身份证输入框,2018/7/9。   ,*/,   public  class  ContentWithSpaceEditText  extends  AppCompatEditText  {   ,   ,public  static  final  int  TYPE_PHONE =, 0;   ,public  static  final  int  TYPE_BANK_CARD =, 1;   ,public  static  final  int  TYPE_ID_CARD =, 2;   ,private  int 开始,,,,   ,private  int  contentType;   ,private  int  maxLength =, 50;   ,private  String 数字;   ,   ,public  ContentWithSpaceEditText (Context 上下文),{   这才能(上下文,null);   ,}   ,   ,public  ContentWithSpaceEditText (Context 上下文,AttributeSet  attrs), {   超级才能(上下文,attrs);   parseAttributeSet才能(上下文,attrs);   ,}   ,   ,public  ContentWithSpaceEditText (Context 上下文,AttributeSet  attrs,, int  defStyleAttr), {   超级才能(上下文,attrs,, defStyleAttr);   parseAttributeSet才能(上下文,attrs);   ,}   ,   ,private  void  parseAttributeSet (Context 上下文,AttributeSet  attrs), {   TypedArray 才能;ta =, context.obtainStyledAttributes (attrs, R.styleable.ContentWithSpaceEditText,, 0, 0);   时间=contentType 才能;ta.getInt (R.styleable.ContentWithSpaceEditText_input_type, 0);//才能,必须调用回收的   ta.recycle才能();   initType才能();   setSingleLine才能();   addTextChangedListener才能(观察者);   ,}   ,   ,private  void  initType () {   if 才能;(contentType ==, TYPE_PHONE), {   ,,maxLength =, 13;   ,,digits =,, 0123456789,“;   ,,setInputType (InputType.TYPE_CLASS_NUMBER);   ,,},else  if  (contentType ==, TYPE_BANK_CARD), {   ,,maxLength =, 31日;   ,,digits =,, 0123456789,“;   ,,setInputType (InputType.TYPE_CLASS_NUMBER);   ,,},else  if  (contentType ==, TYPE_ID_CARD), {   ,,maxLength =, 21;   ,,digits =,空;   ,,setInputType (InputType.TYPE_CLASS_TEXT);   ,,}   setFilters才能(new  InputFilter [] {new  InputFilter.LengthFilter(最大长度)});   ,}   ,   ,@Override   ,public  void  setInputType (int 类型),{   if 才能;(contentType ==, TYPE_PHONE  | |, contentType ==, TYPE_BANK_CARD), {   ,,type =, InputType.TYPE_CLASS_NUMBER;   }才能else 如果(contentType ==, TYPE_ID_CARD) {   ,,type =, InputType.TYPE_CLASS_TEXT;   ,,}   super.setInputType才能(类型);/*才能,非常重要:setKeyListener要在setInputType后面调用,否则无效。*/如果才能(! TextUtils.isEmpty(数字),{   ,,setKeyListener (DigitsKeyListener.getInstance(数字));   ,,}   ,}   ,/* *   *,才能设置内容的类型   *,才能@param  contentType 类型   ,*/,public  void  setContentType (int  contentType), {   时间=this.contentType 才能;contentType;   initType才能();   ,}   ,   ,private  TextWatcher  watcher =, new  TextWatcher (), {   @Override才能   public 才能;void  beforeTextChanged (CharSequence 年代,int 开始,int 统计,,int 后),{   ,,}   ,   @Override才能   public 才能;void  onTextChanged (CharSequence 年代,int 开始,int 之前,int 计数),{   ,,ContentWithSpaceEditText.this.start =,开始;=,,ContentWithSpaceEditText.this.before ;;   ,,ContentWithSpaceEditText.this.count =,计数;   ,,}   ,   @Override才能   public 才能;void  afterTextChanged (Editable  s), {   ,,if  (s ==, null), {   ,,,返回;   ,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中实现一个银行卡,手机号格式