直接上代码

package cn.yhsh.keyeventdemo;import android.text.InputFilter;
import android.text.Spanned;/*** @author xiayiye* @date 2022/4/2 13:23*/public class SearchKeyWorldLengthFilter implements InputFilter {private final int mMax;public SearchKeyWorldLengthFilter(int max) {mMax = max;}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {int keep = mMax - (dest.length() - (dend - dstart));if (keep <= 0) {//这里,用来给用户提示,当然可以替换成 更加优雅的形式if (null != lengthListener) {lengthListener.pass();}return "";} else if (keep >= end - start) {return null;} else {keep += start;if (Character.isHighSurrogate(source.charAt(keep - 1))) {--keep;if (keep == start) {return "";}}return source.subSequence(start, keep);}}public interface LengthListener {void pass();}LengthListener lengthListener;public void setLengthListener(LengthListener lengthListener) {this.lengthListener = lengthListener;}
}

使用方法如下:

SearchKeyWorldLengthFilter searchKeyWorldLengthFilter = new SearchKeyWorldLengthFilter(10);editText.setFilters(new InputFilter[]{searchKeyWorldLengthFilter});

非常简单,超出字符直接就不能输入了,还可以吐司提示

Android开发之限制输入框长度 | 限制EditText输入长度 | 限制AppCompatEditText长度的方法相关推荐

  1. 【Android】设置EditText输入类型和内容长度

    1.设置输入类型 设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置. (1 ...

  2. android开发 实现动态获得app的cpu占有率并导出文件的两种方法。

    android开发 实现动态获得app的cpu占有率并导出文件的两种方法. 最近在做学校实验室的项目的时候,师兄要求我对app的性能进行评估,主要是从电量.cpu占有率.python模型的响应时间三者 ...

  3. android textview点击部分,Android开发第二大控件,EditText的属性和使用方法

    EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...

  4. Android 开发环境搭建 与在编译中遇到错误make Error 45解决方法

    Android 开发环境搭建 一.安装ubuntu 10.10操作系统 使用光盘安装,注意分区,分一个swap分区为3G(原则需要与内存一样大,但可以稍微比内存大一点).当时是同事帮我弄的,swap开 ...

  5. Android开发: 美化输入框EditText

    在res/drawable路径下新建et_sharp.xml 文件 话不多说直接上代码 <?xml version="1.0" encoding="UTF-8&qu ...

  6. Android开发之自定义输入框无法弹起键盘输入法的解决方法

    通常在开发需求中,在很多场景下我们需要手动吊起输入法功能,但是偶尔会发现在自定义EditText输入框中有时候会无法弹起输入法,举个我遇到的场景: 第一次进入此页面要求立马获取输入框焦点并且弹起输入法 ...

  7. Android开发8:UI组件TextView,EditText,Button

    版本:Android4.3 API18 学习整理:liuxinming TextView 概述 TextView直接继承了View(EditText.Button两个UI组件类的父类) TextVie ...

  8. 《Android开发卷——实时监听文本框输入》

       在实际开发中,有时候会让用户发布一些类似微博.说说的东西,但是这个是有限制长度的,除了在文本输入框限制长度外,还要在旁边有一条提示还能输入多少个字的"友好提示". 1.文本框 ...

  9. Android开发之绘制自定义进度条 | 渐变进度条 | 斜角进度条的方法

    老套路先上图 先看上面的斜角进度条的实现方法: package cn.yhsh.appwidget;import android.content.Context; import android.gra ...

最新文章

  1. 生日快乐程序_亲爱的陕师大:75岁生日快乐!一起走过师大时光,在线生成你的师大印迹!...
  2. 在Linux操作系统下使用虚拟光驱的方法
  3. linux版本查看命令多少位,查看linux系统版本命令32位还是64位
  4. 一图看懂云栖大会「云原生」发布
  5. Java实现词频统计(Wordcount)-Map或Hashtable的value排序
  6. mysql8.0.11创建用户报错_mysql8.0.11修改root密码,其他创建用户和删除用户
  7. 服务器网络销售软文,关于云服务器的软文
  8. nodejs 图片处理模块 rotate_会照片处理的不只是ps,还有python!
  9. pytorch RuntimeError: expected scalar type Double but found Float
  10. 设计模式之路 | 外观模式
  11. 结构体数组 初始化(转)
  12. win7系统中如何使文件显示出扩展名
  13. 两台计算机之间的远程连接
  14. Mysql中的lpad,rpad函数
  15. 【六】【vlc-android】vlc的decoder控制层传输数据与ffmpeg视频解码模块decoder层的数据交互流程源码分析
  16. 树莓派制作内网dns服务器,树莓派使用dnsmasq搭建DNS服务器
  17. 一款非常不错的高仿UC浏览器源码下载
  18. 第三周啦,加油加油再加油。
  19. 荣耀play4t pro鸿蒙,荣耀play4t和荣耀play4tpro区别|参数对比-太平洋IT百科手机版
  20. Windows Project2016如何增加加班工时。

热门文章

  1. 都是做嵌入式凭什么高薪offer归别人
  2. verilog驱动ADC0809包括仿真测试
  3. cad画1000线太长了_为什么你画CAD图没别人快?今天就教你几招!
  4. python parser count_8 个 Python 实用脚本,早掌握早下班!
  5. html 的c标签库,jstl C标准标签库Ⅰ
  6. 苹果是c语言安卓是什么语言,主流app是用什么语言开发的苹果和安卓的主流开...
  7. 面试基础-- JDK、JRE、JVM
  8. tomcat多个端口对应多个web应用
  9. springboot+dynamic多数据源配置
  10. 一种向后兼容的C++结构体设计