InputFilter实现EditText文本输入过滤器

Android InputFilter详解 项目中遇到一个需求,需要限制EditText只能输入到小数点后两位网上有两种方案,一种是使用TextWatcher,另一种就是使用InputFilter,感觉使用InputFilter的方式比较优雅,比如EditText android:inputType限制各种输入类型就是通过各种各种InputType来实现的。还有maxLength限制EditText输入长度也是通过InputFilter实现的。 阅读详情

EditText是Android的文本输入框控件,这地球人应该都知道的了,但是默认的EditText是无所不能输入的,有时候我们需要设计一 款软件,而且是给小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的内容,也就是屏蔽某些所不能输入的文字的时候,该如何做呢?

 

其实Android的SDK早已经为我们想过这个问题了,它为我们提供了一个叫做InputFilter的东西,通过它我们可以轻松的设计一个过滤器,用于屏蔽用户的某些输入,或者将输入改成某些良性的内容,从而解决了以上的问题。

实现InputFilter过滤器,需要覆盖一个叫filter的方法。

public abstract CharSequence filter (
CharSequence source,  //输入的文字
int start,  //开始位置
int end,  //结束位置
Spanned dest, //当前显示的内容
int dstart,  //当前开始位置
int dend //当前结束位置
);

以下实现的InputFilter为无论输入什么内容,都被自动替换成“ATAAW.COM”。

editText.setFilters(new InputFilter[] {
new InputFilter() {   
public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) {  
        return src.length() < 1 ? dst.subSequence(dstart, dend) : "ATAAW.COM";  
    }  
} }); 

由以上实例我们可以实现这样一个功能,让EditText控件无法输入任何内容,如何做呢?只需要将以上的“ATAAW.COM”替换成“”即可,每次输入都等于没输入任何内容。

输入过滤器——InputFilter 一般情况下我们通过请求体读取器InputStreamInputBuffer获取的仅仅是源数据,即未经过任何处理发送方发来的字节。但有些时候在这个读取的过程中希望做一些额外的处理,并且这些额外处理可能是根据不同条件做不同的处理,考虑到程序解耦与扩展,于是引入过滤器(过滤器模式)——输入过滤器InputFilter。在读取数据过程中对于额外的操作只需要通过添加不同的过滤器即可实现,例如添加对http1 阅读详情

相关推荐

菜鸟-需求预测与分仓规划

通过修改模型的损失函数对问题进行求解,比其它单模型的效果好很多。

永不理解_fdu的博客 4881

InputFilter的使用

InputFilters用在可编辑的控件,用来限制控件的变化。   InputFilter只有一个filter方法。   public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend);   filter参数介绍:   source   :变化的

xiaoming_zhong的博客 5585

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 290

Android修行手册-EditText监听和InputFilter

大佬(×)新手(√)👉。

2401_87555332的博客 1089

Android Geckoview实战:5分钟搞定JS与原生交互(附完整Demo代码)

本文详细介绍了在Android应用中使用GeckoView替代系统WebView,构建稳定高效的JavaScript与原生代码交互桥梁的实战方法。通过WebExtension架构,文章提供了从环境配置、扩展开发到Android端集成的完整步骤,并附有可运行的Demo代码,帮助开发者快速解决混合应用中的兼容性问题。

u5v6w7的博客 933

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在优快云下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

Android 中的InputFilter

EditText在安卓中是经常需要用到的。但是简单的EditText实际开发中的很难满足产品的需求,比如微信输入金额的EditText,里面对输入额度的限制有很多,如,保存小数点后两位,第一个数字为0的时候,后面只能输入“.”,这个时候,EditText 的InputType是没法满足这样的需求,所以我们就要借助于InputFilter。 其他需求例如:过滤一些敏感的字眼,他的使用方法如

zhangjin12312的博客 1900

MAVEN教程-第一篇:MAVEN基础入门

MAVEN基础入门摘要 Maven是Java项目自动化构建工具,核心解决依赖管理(自动下载JAR包)、标准化构建流程(统一目录结构)和插件扩展问题。安装需配置环境变量(MAVEN_HOME),通过mvn -v验证。使用archetype:generate命令快速生成项目,标准结构包含src/main/java(主代码)和pom.xml(配置依赖/插件)。关键操作:mvn compile编译代码,mvn exec:java运行主类。POM文件定义项目元数据(如groupId)、依赖(如JUnit)和构建插件(

无 231

android输入过滤器,InputFilter实现EditText文本输入过滤器实例代码解析

EditText是Android的文本输入框控件,这地球人应该都知道的了,但是默认的EditText是无所不能输入的,有时候我们需要设计一 款软件,而且是给小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的内容,也就是屏蔽某些所不能输入的文字的时候,该如何做呢?其实Android的SDK早已经为我们想过这个问题了,它为我们提供了一个叫做InputFilter的东西,通过它我们可以轻松的设计一个过滤...

weixin_28751115的博客 777

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

renkai721的专栏 24万+

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 71

android 笔记 --- InputFilter实现EditText文本输入过滤器

EditText是Android的文本输入框控件,这地球人应该都知道的了,但是默认的EditText是无所不能输入的,有时候我们需要设计一款软件,而且是给小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的内容,也就是屏蔽某些所不能输入的文字的时候,该如何做呢? 其实Android的SDK早已经为我们想过这个问题了,它为我们提供了一个叫做InputFilter的东西,通过它我们可以轻松的设计一...

zkl_1987的专栏 437

深度解析电力负荷预测:基于深度学习的完整实战指南

电力负荷预测是智能电网运行中的核心技术之一,准确的负荷预测对于电网的稳定运行、电力市场交易以及能源调度具有重要意义。本文将详细介绍电力负荷预测的完整解决方案,从数据预处理、特征工程到模型构建与评估,提供完整的可执行代码。我们将使用LSTM(长短期记忆网络)和Transformer两种主流深度学习模型进行实现,并通过实际数据集验证模型效果。电力负荷预测是指根据历史负荷数据、气象因素、时间特征等多维信息,预测未来某一时段的电力需求。超短期负荷预测:未来几分钟到几小时短期负荷预测:未来1天到1周中期负荷预测。

YOLO 111

Android EditText输入最大值提示功能

有时,我们会对EditText添加最大长度限制,在EditText达到输入上限时阻止继续输入并弹出提示。 这个问题看似简单,但很难处理的完美。 由于EditText无法拦截软件盘事件,常规的通过TextWatcher,OnKeyListener,等方法都会存在一定的问题。经过反复试错,终于发现以下方案: 1.实现一个InputFilter,在InputFilter中判

only 1719

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android基础 Android EditText禁止输入空格

1、定义公共InputFilter /** * 禁止输入空格 * * @return */ public class SpaceFilter implements InputFilter { @Override public SpaceFilter filter(CharSequence source, int start, int end, Spanned dest, int d...

weixin_34153893的博客 485

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

editView小写转大写

final EditText input = new EditText(this); InputFilter[] FilterArray = new InputFilter[1]; FilterArray[0] = new InputFilter.AllCaps(); input.setFilters(FilterArray);  

点点滴滴 131

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 中如何限制 EditText 最大输入字符数

方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilter 进行过滤 //editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大

LightSun----让成功成为可能! 1502

Android EditText限制输入字符的5种实现方式

第一种方式:  设置EditText的inputType属性,可以通过xml或者java文件来设置。假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中,   android:inputType="textPassword" 在java文件中,可以用 ev.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);       inputT...

我的书包哪里去了 3166

Edittext限制小数数量,小数点前的数量

/** * Created by ruolanmingyue on 2017/10/26. * * @function 用于过滤输入 防止输入大于500元还有就是限制小数点之后两位 */ public class EditInputFilter implements InputFilter { /** * 最大数字 */ public st...

DW的博客 397

AndroidUI——InputFilter的使用(3)

在项目中经常会遇到限制EditText输入长度的需求,这个很好解决,设置maxLength属性就行了;但是偶尔会遇到限制长度的升级版:中文算两个字符。比如说这个输入框最多可以输入16个英文字符或8个中文,如果中英文混合输入,那么中文数*2+英文数要小于等于16。 布局文件内容不变LengthFilter.javapackage com.wind.demo;import android.text.In

wangxiulong056的专栏 619
上一篇: Ant实践
下一篇: Eclipse集成Android NDK开发环境
zen
zen
博客等级 码龄20年 18粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值