首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EditText数字分组仅显示4个字符

是指在一个EditText控件中,输入的数字以每4个字符为一组进行分组显示。这种分组显示可以提高数字的可读性和易用性。

在实现EditText数字分组仅显示4个字符的功能时,可以通过编程来实现。以下是一个可能的实现方式:

  1. 首先,在布局文件中添加一个EditText控件:
代码语言:txt
复制
<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:digits="0123456789 "
    android:maxLength="19" />

在上述代码中,设置了EditText的输入类型为数字,限制了输入的字符为数字和空格,并且设置了最大长度为19个字符。

  1. 然后,在代码中找到EditText控件,并添加一个TextWatcher来监听输入的变化:
代码语言:txt
复制
EditText editText = findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    @Override
    public void afterTextChanged(Editable s) {
        String text = s.toString().replaceAll(" ", ""); // 去除空格
        StringBuilder formattedText = new StringBuilder();
        for (int i = 0; i < text.length(); i++) {
            formattedText.append(text.charAt(i));
            if ((i + 1) % 4 == 0 && i != text.length() - 1) {
                formattedText.append(" "); // 每4个字符添加一个空格
            }
        }
        editText.removeTextChangedListener(this); // 避免死循环
        editText.setText(formattedText.toString());
        editText.setSelection(formattedText.length());
        editText.addTextChangedListener(this);
    }
});

在上述代码中,通过TextWatcher的afterTextChanged方法来监听EditText输入内容的变化。在每次输入变化后,将输入的数字去除空格,并按照每4个字符添加一个空格的规则进行格式化。然后,将格式化后的文本设置回EditText,并保持光标位置不变。

这样,当用户在EditText中输入数字时,数字会以每4个字符为一组进行分组显示。

EditText数字分组仅显示4个字符的功能可以在许多场景中应用,例如银行卡号、信用卡号、手机号码等输入框中,可以提高用户输入的准确性和可读性。

腾讯云提供了丰富的云计算产品和服务,其中与前端开发、后端开发、数据库、服务器运维等相关的产品包括云服务器、云数据库MySQL、云数据库Redis等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多相关产品和服务的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android自定义控件通用验证码输入框的实现

    需求 4位验证码输入框: 效果图: ? 1. 输入框一行可输入4数字类型的验证码; 2. 4数字之间有间隔(包括底线); 3. 输入框不允许有光标; 4....1.禁止光标,我们直接使用TextView就解决了,而非Edittext; 2.一行显示4数字,比较简单,可以使用线性布局的权重,对TextView进行控制为4等分; 3.每个TextView下面跟着一个底线...EditText接收到用户输入的文本,如何显示在TextView呢?...3、我们监听EditText文本输入事件,最多接收4个输入字符, 每接收到一个字符,我们就赋值给对应的TextView; 底线也随要设置的文本切换显示高亮; 4、如何删除已输入的数值?...; tv_code1~4显示数字的控件; v1~4数字文本的底线,用于设置高亮; 自定义控件代码 PhoneCode package iwangzhe.customview2.phonecode

    2K20

    Android EditText使用详解-包含很多教程上看不到的功能演示

    这时候就可以通过android:maxLength属性来设置最大输入字符个数,比如android:maxLength=“4”就表示最多能输入4个字符,再多了就输入不进去了。 空白提示文字。...EditText为我们提供了android:hint来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,不影响你的EditText的文本。。...四:输入特殊格式的字符 在我们开发程序的时候不免会输入一些特属个数的字符,比如密码(输入框的字符要加密显示),电话号码(比如数字和-),数字等,这些都算是一些特属格式的字符,强大的EditText同样为我们提供了输入这些特属格式字符的设置...有时候我们只想输入数字,不想输入字母,EditText为我们提供了android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数)和decimal...注意这里的软键盘变成“数字键盘”的变化.

    3.8K20

    EidtText

    wrap_content" android:layout_margin="10dp" android:background="#FFF" android:minLines="4"...因为设置了最小显示4行,如果不设置改属性,会从左侧中心位置开始显示,如果是单行就不会存在这个问题了。...---- 在EditText中输入特定的字符 EditText控件中可以通过多种方式指定允许输入的字符,比如指向输入0~9的数字 三种方式: android:digits属性设置为0123456789...控件中的输入文本的时候会弹出系统软键盘,并且整个界面会上衣,以便显示当前正处于焦点的EditText,如果处于某种需要,不想让界面上移,可以使用getWindows().setSoftInputMode...android.R.layout.simple_dropdown_item_1line,array); mActv.setAdapter(adapter); // 指定多个字符串的分隔符为逗号

    67550

    EditText 集锦 - 开发中常用的用法及遇到的各种坑

    输入数字的类型 decimal(浮点数),integer(正整数),signed(带+ -号的整数).注意:该属性在使用时提示已过时,建议使用android:inputType属性替代. android...(默认,居左边显示),viewStart(居左显示),viewEnd(居右显示),textStart(居左显示),textEnd(居右显示).这里需要注意的是最低支持的API版本是17,前两个可以在API14.... android:maxLength //设置EditText最多接受的文本的个数. android:lines //设置EditText显示的行数,设置两行就显示两行,即使第二行没有数据. android...; } }); 限制输入多少字符 在开发当中,我们通常需要对 text 的输入字符进行限制输入,比如限制输入 30 个字符,虽然我们可以直接调用 setMaxLength 方法来限制输入,但是这样会有一个问题...,就是当你的 text 超过 30 个字符的时候,你调用 mEtText.setText ,这时候会报错。

    2.3K20

    Android实现简易计算器(可以实现连续计算)

    设计思路主要是: 根据用户的点击,在一个 EditText显示用户输入的运算步骤,例如 1 * 5 + 8 – 5 , 这个运算步骤首先是字符串类型的,然后在经过系列步骤将字符串解析成为相应的实数计算...,最终得出结果 我是用了两个 EditText ,第一个显示运算步骤(字符串类型),第二个专门用了保存要参与运算的数字,并实时对这个数字进行更新; 对于: “操作数 操作运算符 操作数”,可以定义一个数组来保存这两操作数...,则删除最后两个字符,且eidtText2中字符串不发生变化 edit_input.setText(str.substring(0, str.length() - 2)); } else { //如果最后一个字符数字...edit_input.setText(str.substring(0, str.length() - 1)); //将EditText2中的字符取出,去掉最后一个字符之后再存入 String c2 =...setDoubleA1(double x) { doubleA1 = x; } void setDoubleA2(double y) { doubleA2 = y; } //设置操作数,同时将字符串转换成数字

    3.1K11

    安卓应用安全指南 5.1 创建密码输入界面

    这里提及与密码输入有关的内容。 对于如何保存密码,未来会发布另一篇文章。 要点: 1) 输入的密码应该被屏蔽显示(用*显示) 2) 提供以纯文本显示密码的选项。...3) 警告用户以纯文本显示密码有风险。 要点:处理最后输入的密码时,请注意以下几点以及上述要点。 4) 如果在初始界面中有最后输入的密码,则将黑点的固定数字显示为虚拟,以便不会猜到最后的密码的数字。...有两种方法可以将EditText显示为密码:在布局 XML 中静态指定此值,或通过从程序中切换显示来动态指定此值。...通过指定EditText的InputType,可以切换屏蔽显示和纯文本显示。...设置 -> 安全 -> 使密码可见 打开“使密码可见”设置时,最后输入的字符以纯文本显示。 经过一定的时间(约两秒),或输入下一个字符后,以纯文本显示的字符将被屏蔽。 关闭时,输入后会立即屏蔽。

    1.1K20

    短信发送器

    /*****************2016年4月23日 更新********************************/ 知乎:什么是 7 位元的字符?...使用Windows Mobile 6系统做测试,新建短信后输入一个英文字母,下面显示1/160,再输入一个显示2/160,这就是7字位状态,可以在140字节里装下160个字符。...当再输入一个汉字的时候,下面的显示立刻变成3/70,这就是16字位状态,每个字符都占2个字节,140字节只能装下70个字符,哪怕里面是69个英文字符加1个汉字。...输入160个英文,下面显示160/160,再加一个显示“161/306(2短信息)”。 使用139邮箱做测试,里面发送短信无论什么字符都是以UCS-2编码,当输入135个字符时,显示将按3条短信计费。...拖动控件的话编译器自动加的layout_blow=”@+id/xxx” id那个部分没有+号 Ctrl+f批量替换 EditText显示的行数android:singleLine="true"一行, android

    4.4K20

    Android EditText详解

    前言 很常用的控件EditText(输入框); 和TextView非常类似,最大的区别是:EditText可以接受用户输入。和前面一样,我们不一个个讲属性, 只讲实际应用。那么开始本节内容!...:layout_height="wrap_content" android:inputType="phone" /> 可选参数如下: 文本类型,多为大写、小写和数字符号 android...拨号键盘 android:inputType="datetime" android:inputType="date"//日期键盘 android:inputType="time"//时间键盘 4....设置最小行、最多行、单行、多行、自动换行 EditText默认是多行显示的,并且能够自动换行,即当一行显示不完的时候,他会自动换到第二行 如图所示: [28846367.png] 我们可以对其进行限制,...还为我们提供了设置英文字母大写类型的属性:android:capitalize 默认none,提供了三个可选值: sentences:第一个字母大写 words:每一个单词首字母大小,用空格区分单词

    1.7K20

    EditText的属性和使用方法

    EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法。EditText与TextView的最大区别在于:EditText可以接受用户输入。...n android:inputType="textCapSentences":第一个字母大写。 n android:inputType="textAutoCorrect":自动完成。...n android:inputType="number":数字。 n android:inputType="numberSigned":带符号数字格式。...-- android:inputType="numberPassword"表明只能接受数字密码 --> <EditText android:layout_width="match_parent...当用户还没有输入时,该文本框内默认显示这段信息; 第二个输入框通过android:inputType="numberPassword”设置这是一个密码框,而且只能接受数字密码,用户在该文本框输入的字符会以点号代替

    2.5K90

    1119Android开发笔记—EditTex多行输入及相关问题

    1、android里面EditTex多行输入及输入置顶问题         <EditText           android:id="@+id/releasetContentE"          ...显示滚动条:  android:scrollbars="vertical" 输入标识符置顶: 默认输入标识符居中,若想不置顶使用如下代码    android:gravity="top" minLines...3行后,它形状的大小不会根据输入内容的多少而改变,反正它显示的内容就是3行 而使用minLines的EditText是至它至少显示3行内容,当输入的内容超过3行后,它形状的大小根据输入内容的多少而改变。...android:minLines="3"输入信息后 2、android:inputType常用取值 //文本类型,多为大写、小写和数字符号。 ...textCapCharacters"//输入普通字符     android:inputType="textCapWords"//单词首字母大小     android:inputType="textCapSentences"//第一个字母大小

    85510

    grep、egrep正则表达式之初窥门径

    :任意单个字符[ ]:匹配指定范围内的任意单个字符[0-9]:匹配单个数字[a-z]:匹配单个小写字母[A-Z]:匹配单个大写字母[[:digit:]]:匹配单个数字[[:lower:]]:匹配单个小写字母...分组 \( \):如\(ab\)*(分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用) 5.引用 \n:引用前面的第n个左括号以及与之对应的右括号中的模式所匹配到的内容 拓展正则表达式...:任意单个字符[ ]:匹配范围内的任意单个字符[^]:匹配范围外的任意单个字符 2.次数匹配: *:任意次?...分组: ( ):分组|:或 5.引用: \n:引用前面的第n个左括号以及与之对应的右括号中的模式所匹配到的内容 grep及egrep命令选项 -v: 反向选取 -o:显示匹配的字串,而非字串所在的行...找出ifconfig命令结果中的1-255之间的数字 ?

    76580

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    4、密码不显示明文,而是显示密文,比如点号(·)或者星号(*); 5、输完六位密码,应自动触发密码输入完成的事件; 因为支付密码允许一位一位输入,也允许一位一位删除,所以它本质上还是一个编辑框,也就是说...当然,在界面展现上,需要以横排方格的形式加以显示。于是可以考虑,把支付密码的输入与显示操作分离开来,即密码输入操作仍由EditText处理,而密码显示操作则由自定义的方格布局接管。...,决定当前显示明文还是密文;如果是密文,则显示哪个密文字符; 5、每当EditText里的文本发生变更之时,相应更新TextView队列的各项文本显示; 上述的改造内容,大部分都有可以直接调用的函数,...恰好系统提供了一个字符替换的转换方式类即HideReturnsTransformationMethod,该类的关键代码如下所示: private static char[] ORIGINAL...所以,若想把密码文本替换成点号或者星号,即可依样画葫芦,把数字字符('0'到'9')替换为'\u2022'(点号的Unicode编码)或者'\u002A'(星号的Unicode编码)。

    1.9K30

    linux基础(三)

    head(查看文件首部,默认10行) head -n 4 -c n 查看前n个字符 cat /dev/random strings(提取二进制程序的课间字符) openssl 5、tail(查看文件尾部...patch -b acl.bak diff.log (还原文件) 13、grep(行提取工具) -v 显示不被匹配的行 -i 忽略大小写 -n 显示匹配行号 -c 统计匹配的行数 -o 显示匹配到的字符串...看帮助:man 7 regex 1、基础正则表达式 字符匹配: .匹配任意单个字符 [] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和数字 [:alpha...) \> 或 /b 词尾锚定,用于单词模式右侧 \ 匹配整个单词 \(\) 分组,将一个或多个字符捆绑在一起,当做一个整体处理 echo godgodgod grep -o "\(god\)\" 重复...0次或1次 + 1次或多次 匹配m次 至少m,至多n次 位置锚定 ^ 行首 $ 行尾 \< , \b 词首 \> , \b 词尾 分组 () 后向引用:\1 \2 ...

    1.5K70

    Android EditText限制输入字符的方法总结

    假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中, Android:inputType=”textPassword” 在java文件中,可以用 ev.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD...PS: 常见的搜索功能输入框就是用TextWatcher监测关键词变化,然后查数据并显示出来了。示例代码:只能输入字母或者数字, 如果要支持其它字符可以修改regEx正则表达式。...filter ( CharSequence source, //输入的文字 int start, //开始位置 int end, //结束位置 Spanned dest, //当前显示的内容...下面的实现使得EditText只接收字符(数字、字母),Character.isLetterOrDigit会把中文也当做Letter, 所以要在写个正则判断是否中文。...CharSequence charSequence, int i, int i1, Spanned spanned, int i2, int i3) { String regex = "^[\u4E00

    3.4K20
    领券