安卓APP开发之自定义EditView输入字符监听过滤器

Android 监听键盘输入(实现搜索、发送、完成等等) 在Android App的实际开发中,时常会需要监听软键盘的输入事件。 可通过三种方法进行监听,即dispatchEvent,KeyListener,setOnEditorActionListener这三种方式 例如:微信和QQ聊天的消息发送,你会发现他的聊天框并没有发送的控件,软键盘的换行或者某个按钮会变成发送;在某些浏览器的输入框,输入内容后,软件盘的某个按钮会有搜索的字样,还有填写内容时的完成按钮等等,这些都可以通过监听键盘和输入框的一些配置实现这些功能。 阅读详情

由于之前没有Java的开发经验,也没学过安卓方面的开发,对于自带的一些方法很不熟悉,现在直接上手kotlin,着实艰辛。最近在琢磨这个editView的字符过滤的方法,在网上看了很多资料,都没移植过来,后来就自己自成一家,搞了一个简单的过滤方法,不知道实用不,贴出来与大家分享。

        et_senddata.addTextChangedListener(object :TextWatcher{
            private var str:CharSequence?=null
            private var mcount :Int =0
            override fun afterTextChanged(s: Editable?) {
            }

            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
//                et_senddata.setText(str!!.toString())
                mcount =count
            }

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                str= s
                if(s.isNullOrEmpty())return

                if(Flag_tb_SendStr!!){
                    return
                }
                when(s!![s.length-1]){
                    in '1'..'9'->{}
                    in 'a'..'f'->{}
                    in 'A'..'F'->{}
                    else ->{
                        Toast.makeText(this@UserControlUI, "请输入正确的字符:0~9,a~f或者A~F", Toast.LENGTH_SHORT).show()
                        et_senddata.text!!.delete(s.length-1,s.length)
                    }
                }
            }
        })

以上代码是监听了et_senddata这个EditView控件,然后在onTextChanged状态下进行字符过滤,当检测到当前输入的字符不符时将其删除,这里用的方法是et_senddata.text!!.delete(s.length-1,s.length)的delete方法,ago0是元素的起始位置,ag1是结束位置,该方法可以删除一段元素,删除之后,在EditView控件里将不会显示出来,从而达到过滤的效果。

以上只是个人的想法,有不足之处,请各位大神指出,可以+QQ 578218949 交流

Android实战场景 - 动态监听 EditText 输入数据用于字数提示 Android常见的实战场景之一,动态监听 EditText 输入数据用于字数提示 阅读详情

相关推荐

大陆毫米波雷达ARS408-21xx实战:从零搭建ROS环境下的目标检测与可视化

本文详细介绍了大陆毫米波雷达ARS408-21xx在ROS环境下的实战部署全流程。从硬件连接、CAN总线配置,到ROS驱动节点开发、CAN报文解析,再到RViz三维可视化实现,提供了完整的代码示例与调试技巧,帮助开发者快速搭建毫米波雷达目标检测与可视化系统。

open4的博客 633

Android EditView 使用InputFilter限制输入内容

Android EditView 使用InputFilter限制输入内容

dackchong的博客 745

泛微OA与金蝶云星空深度集成实战:审批与表单双场景解析

本文深入解析泛微OA与金蝶云星空的深度集成实战,聚焦审批流程与表单对接两大核心场景。通过具体案例,详细阐述了如何实现业务数据与审批流程的自动联动,打破数据孤岛,提升企业运营效率与数据一致性,并分享了接口设计、安全策略及实战避坑指南。

4k5l6j7h8的博客 466

Android EditView自定义正则表达式

问题描述 有两个要求: 1.EditText获取到焦点时,弹出数字键盘; 2. 只能输入数字或字母; 解决方案 1.弹出数组键盘简单,就是把inputType类型设为number <EditText android:id="@+id/home_et_validate" style="@style/order_vcode_input" android...

Beluga_白鲸 7005

3. Matérn协方差模型与随机偏微分方程

对应的高斯马尔可夫随机场 (GMRF)可以通过使用某种随机偏微分方程(SPDE)明确构造,当由高斯白噪声驱动时,随机偏微分方程的解是具有 Matérn 协方差函数的高斯场(GF)

weixin_40614311的博客 1746

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

311

Android:<1>EditView控件和4种方法实现监听控件

我们学过了TextView之后,就有一种想知道那种编辑框怎么做的冲动,那好,我们现在就来进入编辑框EditView的学习: 1、编辑框的常用属性: android:hint;内容为空时的提示文字 android:editable;设置是否可以编辑 android:inputType="textPassword";设置输入内容的格式,我这里选择的是密码格式,也就是我们在输入的时候显示*号,还可以是其他格式。如phone... android:digits="123456789@q.com"这里是设置

aiwanchengxu的博客 3198

基于Simulink的伺服电机位置闭环控制仿真

本文带你从零构建了伺服电机位置闭环控制系统​ 的完整Simulink仿真模型,实现了:✅ 搭建PMSM伺服电机、逆变器、机械臂负载的主电路与编码器反馈模型;✅ 用MATLAB Function实现三环控制(位置环PID、坐标变换、电流环PI);✅ 验证阶跃定位(稳态误差0.002°、响应0.08s)与正弦跟踪(误差0.008°)的高性能;✅ 对比开环控制,明确位置闭环在精度、响应、抗扰上的优势;✅ 理解“三环嵌套+反馈校正”的核心思想(精密定位的工程实现)。核心收获。

amy_mhd的博客 173

java editview监听输入,Android中EditText的三种监听事件

第一步:.xml文件建三个控件EditText,Button,TextViewxmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent...

weixin_39849894的博客 714

AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理

GPFS(General Parallel File System,通用并行文件系统)是由 IBM 开发的高性能分布式文件系统,最初设计于 1990 年代,用于满足高性能计算(HPC)环境对大规模数据存储和访问的需求。GPFS 现已广泛应用于企业级存储、云计算、大数据分析、人工智能和媒体处理等领域。它以其高性能、可扩展性和可靠性著称,能够支持从小型集群到超大规模系统的各种部署场景。

Kason_iWiki 1132

《YOLOv8-seg改进》专栏指导书册 &手把手创新教程

学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研;1)手把手教你如何训练YOLOv8-seg;2)模型创新,提升分割性能;3)独家自研模块助力分割;

会AI的学姐 3813

Android常用组件-editview

布局文件 <EditText android:id="@+id/editText3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="8" //编辑框长度 andr

小明的博客 2639

基于matlab实现的水果识别系统设计

本项目针对多种常见水果混合的图像,利用 Matlab 软件,对水果的识别进行研究。根据水果和背景的差别选取阈值,对去噪增强对比度后的图像进行二值化处理。再对图像进行边缘检测,选定连通区域,标记后再对不同种水果的颜色,形状,大小等特征进行快速识别水果,从而实现对水果的正确分拣。:水果识别、MATLAB、数字图像处理。

热情、奔放、快乐编程! 4854

EditView输入监听

代码: mEditText.addTextChangedListener(new TextWatcher(){ @Override public void afterTextChanged(Editable s) { Log.d(TAG, "afterTextChanged");

Beluga_白鲸 1420

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

weixin_28751115的博客 778

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android开发 文本输入 EditText 监听器

注意这里是焦点变更,而不是点击事件,因为EditText点击一次触发的是焦点变更,第二次点击才会触发点击事件。当然也可以自定义EditText的背景,比如用selector设定获取焦点时EditText背景的变化。使用EditText时,可以在focus变更时触发事件,常用于检查EditText的内容或者长度。其中focus和nofocus都是自定义的shape,分别表示聚焦和没有聚焦时的背景,如下图。当焦点移向密码栏时,检查手机号码的长度,若小于11位,将焦点返回手机号码栏,弹出提示。

jmqxnxg的博客 3132

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

androidの监听EditView中的文本TextWatcher

android中的编辑框EditText也比较常用,那比如在搜索框中,没输入一个字,下面的搜索列表就显示有包含输入关键字的选项,这个输入监听怎么实现的呢? 我们可以建一个例子,效果图如下: 我们可以监听光标处在哪个位置,选择了几个字符并处理,输入了几个字符 先新建布局文件 [html] view plaincopy

Steampy专栏 877

Android EditView详解 常用的场景

EditView详解

奇奇怪怪的Android code的博客 1786

android edittext InputFilter 输入控制

InputFilter 可能需要对用户的输入进行一些限制,可以为EditText Widget设置一个InputFilter以实现这一功能 如: /* * 使用输入过滤器约束用户输入 * (只能输入两个大写字母) * setFilters方法需要调用一个InputFilter对象数组。 * 本例中将所有输入的小写字

鑫的专栏 3689

android中EditText输入监听事件

在开发Android的过程中,对于edittext的使用频率还是挺高的,对于其监听事件一般有两种: 1.setOnEditorActionListener 这个方法的实现需要在输入完后按下回车键才能进行下一步的操作 //控件的监听发生于按回车键的时候。 good_num_et.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public b

kaolagirl的博客 6520

Android开发之EditText字符串过滤器InputFilter

一、InputFilter 是什么?有什么用? 在Android编程中,一般没什么特殊要求的话,我们用EditText可能只会用到xml里面的限制输入类型、最大长度,行数等等这些简单的控制,但如果我们想要进行一些复杂一点的输入控制(比如:限制单字节多少位,双字节多少位;限制只能输入业务要求的特定的字符;修改输入字符)就要用今天要讲的InputFilter了。 二、怎么用? 1、创建一个类

talentclass_ctt的博客 6594

Android EditText 字符个数限制[转]

Android EditText 字符个数限制方法一: mEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Constants.MAX_TEXT_INPUT_LENGTH)});方法二:这个方法虽然复杂点,但我更偏向使用这种方法。 private TextWatcher mTextWatcher = new TextWatcher(){  Toast mToast = null;  public void beforeTex

zhou699的专栏 6714

android的输入框EditText限制条件setFilters

android输入框有时候需要添加各种各样的限制条件,仅仅限制长度的属性(maxLength)或方法(length())是不能满足我们的需求的,如你需要这个输入框要求只能输入数字或字母又或者是大小写字母之类的,这时候可以用setFilters 使用步骤 1)首先需要先获取你的输入框的控件:EditText et_psw = (EditText) findViewById(R.id.et_log

哥斯拉不说话懿的博客 9409

android edittext监听拦截,EditText输入内容拦截和监听删除

/*** 扩展输入框。* 可拦截:* 软件盘删除按钮点击事件;* 输入框内容提交;* 长按文字菜单选项点击事件(复制、粘贴、全选等)*/public class ExtendEditText extends AppCompatEditText {public ExtendEditText(Context context) {super(context);}public ExtendEd...

weixin_32889145的博客 1611

EditText输入事件截获与监听

本节介绍一下EditText中进行文字截获和事件监听。   预期目标:如下图,输入框中每输入一个字符,下面的TextView可以迅速的显示出来输入框中的内容     1.第一种实现方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件 Java代码  ed

com360的专栏 1万+
上一篇: 安卓APP开发之软件启动顺序
下一篇: C语言那些事之指针操作
---牧马人---
博客等级 码龄9年 108粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值