代码地址如下:
http://www.demodashi.com/demo/14752.html

####前言
在android开发中,我们经常会遇到手机号,银行卡号,税号等长串数字或字母,为了视觉上的简洁化,需要4个一组分组显示,今天就讲讲这个功能的实现和使用。

今天涉及的内容有:

  1. 原理分析
  2. 小写转大写的类UpperCaseTransform
  3. 封装类CrEditText的介绍和使用
  4. 项目结构图和效果图
    #####一. 原理分析
    鉴于要实现四字分隔的情况,那么就需要监听 editText 的输入过程,即需要实现 TextWatcher 接口,然后在监听输入过程中去改变需要显示的内容。
    在这里我们封装了一个CrEditText类,其内部有一个
    CardWatcher实现TextWatcher接口,并实现4字一组的主要逻辑
    #####二. 小写转大写的类UpperCaseTransform
    一般卡号可能是纯数字,也可能是数字和字母组合,当涉及到字母的时候,一般字母都是大写的,那么为了方便用户输入,我们需要一个将字母小写转大写的类UpperCaseTransform,现在给出UpperCaseTransform代码:
//首先是小写转大写的方法
public class UpperCaseTransform extends ReplacementTransformationMethod {@Overrideprotected char[] getOriginal() {char[] aa = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};return aa;}@Overrideprotected char[] getReplacement() {char[] cc = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};return cc;}
}

#####三. 封装类CrEditText的介绍和使用
首先涉及到小写字母转大写的设置:

//设置小写转换大写
mEdtTest.setTransformationMethod(new UpperCaseTransform());

若小获取CrEditText中输入数据,你可以这样:

String text=mEdtTest.getDifferString();

下面给出CrEditText在MainActivity中的使用范例:

public class MainActivity extends BaseActivity{@BindView(R.id.edt_test)CrEditText mEdtTest;@BindView(R.id.btn_content)Button mBtnContent;@Overridepublic int getContentViewId() {return R.layout.activity_main;}@Overridepublic void initData() {//设置小写转换大写mEdtTest.setTransformationMethod(new UpperCaseTransform());}@Overridepublic void setListener() {mBtnContent.setOnClickListener(this);}@Overridepublic void onClick(View v) {super.onClick(v);switch (v.getId()) {case R.id.btn_content://获取数据String text=mEdtTest.getDifferString();LogUtil.i("=====输入框中数据====text="+text);showShort("=====输入框中数据: "+text);break;default:break;}}private void showShort(String msg){ToastUtil.shortShow(mContext,msg);}@Overrideprotected void onDestroy() {super.onDestroy();}
}

MainActivity对应的activity_main.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"tools:context="com.android.testdemo.main.MainActivity"><com.android.testdemo.function.CrEditTextandroid:id="@+id/edt_test"android:layout_width="@dimen/dp_0"android:layout_height="wrap_content"android:layout_marginEnd="8dp"android:layout_marginStart="8dp"android:layout_marginTop="80dp"android:layout_weight="1.0"android:background="@null"android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"android:gravity="center_vertical|right"android:hint="请填写纳税人识别号"android:inputType="textVisiblePassword"android:maxLength="24"android:paddingBottom="@dimen/dp_15"android:paddingTop="@dimen/dp_15"android:textColor="@color/black"android:textColorHint="@color/color_aeaeae"android:textSize="@dimen/sp_14"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/btn_content"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginEnd="8dp"android:layout_marginStart="8dp"android:layout_marginTop="50dp"android:text="Button"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/edt_test" /></android.support.constraint.ConstraintLayout>

其中最为重要的是,你一定要设置 “android:maxLength=“24””属性,不然会没有效果。
#####四. 项目结构图和效果图

项目结构图

效果图

手机号,银行卡号等自动分组显示的输入框

代码地址如下:
http://www.demodashi.com/demo/14752.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

手机号,银行卡号等自动分组显示的输入框相关推荐

  1. 解决VBA自动分组中无法显示展开号(‘+’、‘-’)的情况

    在上一篇文章中,实现了使用VBA对Excel进行自动分组的功能.但在运行时发现部分字分组无法进行独立的操作. 通过调整展开号的位置,可以解决该问题.实现代码如下: Collapse Detail is ...

  2. excel 手动分组和自动分组

    1某个类别下有多个条目,我们想打开折叠显示 方法一:一个个的设置分组 2方法二: 自动分级显示 上面的实现方式,还是直接使用excel的分组功能,只不过在处理过程中,会遇到组成员一个时,处理就会麻烦些 ...

  3. 微信公众号扫描带参数二维码实现自动分组?

    2019独角兽企业重金招聘Python工程师标准>>> 最近很多人都在问微信公众号扫描带参数二维码实现自动分组,通过微号帮平台操作实现,这个功能不止如此,微信二维码来源统计分析.微信 ...

  4. ALV 层级分组显示报表

    相当于分组显示.第一行显示分组的头,下面显示明细. 例程1:采购订单主从表ALV层次输出 *&------------------------------------------------- ...

  5. Flutter Dart:用数字分组显示大数字

    Flutter & Dart:用数字分组显示大数字 大家好,我是坚果,我的公众号"坚果前端", 用逗号显示大数字作为千位分隔符将增加可读性.这篇简短的文章将向您展示如何借助 ...

  6. birt报表的行隐藏和列隐藏以及分组显示

    为什么80%的码农都做不了架构师?>>>    1.行隐藏 按照图中的步骤:1.选择要隐藏的行:2.在property Editor 中找到visibility选项,勾上HIde E ...

  7. 实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

    分组标注场景 大量复杂.乱序的图片依次标注效率极低,如果一次可以标注一大片的图片将极大地提升标注效率. 自动分组识别并提取图像特征,通过ModelArts先进的聚类算法可以将所有图片分组:将特征相似的 ...

  8. 基于Jquery的图片自动分组且自适应页面的缩略图展示特效

    今天分享的是一款基于Jquery的图片自动分组且自适应页面的缩略图展示特效,通俗一点说就是JS相册,不过是用JQuery做的,相当不错! This experimental jQuery plugin ...

  9. 银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)

    银行卡号简单的格式化显示处理(支付宝.微信绑定卡列表显示卡号) 概述 观察发现支付宝和微信中不管是多少位的银行卡号,均被格式化为16位;类似于**** **** **** 1111这种格式,就是前面1 ...

最新文章

  1. 炸了,为什么某高速网络总是二层通三层不通?
  2. CentOS 6.4 i386 版本安装 FastDFS、使用Nginx作为文件访问WEB服务器
  3. html form callback,Promise异步编程模式总结初始化Promise对象统一错误处理PromisifyfromCallbackMongoose Promisify...
  4. 开发文档怎么编写_PoC 编写指南
  5. 惊了!同事竟然在代码里“下毒”
  6. python双划线_Python中单下划线(_)和双下划线(__)的特殊用法
  7. Programming Protocol-independent Packet Processors (P4)
  8. 银泰抛弃传统数据库转投阿里云PolarDB 投入产出比增长2倍以上
  9. vue中使用echarts
  10. 有源码如何搭建网站(从零开始搭建教程)
  11. android popWindow组件微信式实现(较完整版)
  12. 巧萌易携之ROS2Go的不完全教研攻略
  13. 【论文写作】本科、硕士研究生毕业论文字体、段落格式参考
  14. 玩转OpenStack网络Neutron(1)--热身
  15. 1【源码】数据可视化:基于 Echarts +Java SpringBoot 实现的动态实时大屏范例-互联网企业数据分析
  16. libc、glibc与gcc
  17. ActiveMQ配置wss
  18. 趣比特(BitFun)白皮书靓点解析
  19. 经典查询练手第二篇(不懂装懂,永世饭桶!)
  20. c语言break能与if用吗,break可以用于if吗

热门文章

  1. SDL 播放pcm数据
  2. python类2继承-抽象-多态
  3. 12015.linux通过代码或命令形式操作内存/dev/mem
  4. efcore 批量_EFcore使用EFCore.BulkExtensions 批量增加、删除、修改
  5. 【其他】命名风格之unix like风格,Windows风格,ST固件库风格,驼峰命名
  6. 【蓝桥杯单片机】数码管
  7. 计算机网络(二)——局域网硬件设备
  8. 数据结构之顺序队列的优化
  9. vc可以实现对话框里显示html文档内容,也可以显示word内容吗,VC6中使用CHtmlView在对话框控制中显示HTML文档...
  10. 微信小程序|area组件使用的地址数据文件plus