前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android edittext InputFilter 输入控制

Android edittext InputFilter 输入控制

作者头像
程思扬
发布于 2022-01-10 06:56:07
发布于 2022-01-10 06:56:07
73700
代码可运行
举报
文章被收录于专栏:程思阳的专栏程思阳的专栏
运行总次数:0
代码可运行

InputFilter 可能需要对用户的输入进行一些限制,可以为EditText Widget设置一个InputFilter以实现这一功能

如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
         * 使用输入过滤器约束用户输入
         * (只能输入两个大写字母)
         * setFilters方法需要调用一个InputFilter对象数组。
         * 本例中将所有输入的小写字母自动转换为大写字母,而且被限定在
         * 两个字符
         */
        final EditText text_f = (EditText)findViewById(R.id.editText01);
        text_f.setFilters(new InputFilter[]{
                        new InputFilter.AllCaps(),
                        new InputFilter.LengthFilter(2)
        });

下例 小数点后两位

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void initEt() {
		tv1=(EditText) findViewById(R.id.et1);
		tv2=(EditText) findViewById(R.id.et2);
		tv1.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
		tv2.setTransformationMethod(PasswordTransformationMethod.getInstance());
		String s="adb";
		tv1.setTextKeepState(s);
		tv2.setText(s);
		tv1.setFilters(new InputFilter[] { lengthfilter });
 
	}
	// 设置小数位数控制
			InputFilter lengthfilter = new InputFilter() {
				public CharSequence filter(CharSequence source, int start, int end,
						Spanned dest, int dstart, int dend) {
					System.out.println(source.toString()+"-->"+start+"-->"+end);
					System.out.println(dest.toString()+"-->"+dstart+"-->"+dend);
					// 删除等特殊字符,直接返回
					if ("".equals(source.toString())) {
						return null;
					}
					String dValue = dest.toString();
					String[] splitArray = dValue.split("\\.");
					if (splitArray.length > 1) {
						String dotValue = splitArray[1];
						int diff = dotValue.length() + 1 - 2;
						if (diff > 0) {
							CharSequence c=source.subSequence(start, end - diff);
							System.out.println(c.toString());
							return c;
						}
					}
					return null;
				}
			};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
EditText 集锦 - 开发中常用的用法及遇到的各种坑
EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。同时,本文章会持续更新,建议收藏起来。
程序员徐公
2019/03/04
2.3K0
项目需求讨论--可能是用InputFilter来做的最好的金额限制
看惯了可能是XXX最好的,可能是XXXX目前最好的,今天我也用下这个标题,哈哈。别喷我,当然我也就吹吹牛。有很多好的方法来实现。
青蛙要fly
2018/08/29
8380
项目需求讨论--可能是用InputFilter来做的最好的金额限制
Android 实现EditText输入金额
Android中EditText是一个InputType类型有很多的控件,可以来达到不同的软键盘效果。如下图:
网罗开发
2021/01/29
3.1K0
Android 实现EditText输入金额
Edittext监听动态改变
方法一:          // 输入框限制输入字数         editText.addTextChangedListener(new TextWatcher() {             private CharSequence temp;             private boolean isEdit = true;             private int selectionStart ;             private int selectionEnd ;
xiangzhihong
2018/01/26
1.4K0
过滤输入法的表情
所以为了防止用户胡乱输入表情、同时限制用户只能输入应用自带的表情。编写了一个自定义控件来禁止输入的表情。 代码如下: package com.qd.widget;   import android.content.Context;   import android.text.InputFilter;   import android.text.SpannableString;   import android.text.Spanned;   import android.text.TextUtils; 
xiangzhihong
2018/01/29
1.3K0
EditText输入密码的显示和隐藏
密码的显示和隐藏是一个很常见的小知识点,主要包括2个部分:小图标的变化和EditText输入密码的显示和隐藏
AntDream
2019/07/15
2.5K0
【Android初级】教你用两行代码实现“显示/隐藏密码”的效果
Android里面要使用密码的场景是非常多的,支付宝、微信、淘宝以及各大银行APP,都跟用户的密码有关。用户的密码是极为隐私的,用户在输入时不希望密码被别人看到,所以几乎所有需要输入密码的场景下都会把密码隐藏起来,显示成一串的黑点。今天我们就来看下如何实现这个能动态显示密码和隐藏密码的效果。
netkiller old
2021/02/08
2K0
Android开发笔记(一百四十六)仿支付宝的支付密码输入框
编辑框EditText算是Android的一个基础控件了,表面上看,EditText只负责接收用户手工输入的文本;可实际上,要把这看似简单的文本输入做得方便易用,并不是一个简单的事情。因为用户可能希望App会更加智能一些,比如用户希望编辑框提供关键词联想功能,又比如用户希望编辑框能够自我纠错等等;所以,Android从设计之初就努力尝试解决这些问题,先是自带了自动完成编辑框AutoCompleteTextView,后来又在Android5.0以后提供了文本输入布局TextInputLayout。 然而,计划赶不上变化,开发工作中总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。为直观理解支付密码输入框的业务需求,下面还是先看看该输入框的最终效果图。
aqi00
2019/01/18
1.9K0
内存泄露的一些坑
如上,在Activity内部如果声明一个这样的Handler,那么myHandler就默认持有Activity引用,假设Activity退出了,但是可能这时候才有myHandler的任务post,那么Activity是无法被回收的,可以采用以下方式解决:
大大大大大先生
2018/09/04
1.7K0
[Android][Framework] 从一个小问题了解STK加载内容的方式
这个界面从哪来的? 实际上,我们插入SIM卡,手机就会显示SimToolKit,打开就能看到一些和运营商相关的菜单。换了不同的卡菜单也会变。所以大概可以猜到,SIM卡里写有一些配置文件,STK会解析这些文件。
wOw
2018/09/18
1.3K0
[Android][Framework] 从一个小问题了解STK加载内容的方式
Android项目实战(五十二):控制EditText输入内容大小写转换
今日需求,EditText内容为一串字符串,要求将用户软键盘输入的小写字母在输入的时候自动转为大写字母,反之亦然。
听着music睡
2018/12/25
1.2K0
Android Notes|实用小技巧,不定期更新...
小厂开发而言,日常的繁杂的业务开发任务相对较重,有些东西,首次遇到,后续也不想再浪费时间。
贺biubiu
2024/03/26
960
掌握小技巧,助你Coding更上一层楼~
话说前几天在网上浏览到一大牛写的关于Android布局优化的文章,看后感触很深,回过头看看自己写过的代码,发现还是有不少需要改进,今天找不到那天看的文章了,只能自己总结一些,以后有机会再次补充吧~
贺biubiu
2019/06/11
6060
相关推荐
EditText 集锦 - 开发中常用的用法及遇到的各种坑
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文