在 xml 文件中设置文本编辑框属性作字符数限制

如:Android:maxLength="10" 即限制最大输入字符个数为10

这样限制的话限制的是字符长度,有的并不能实现需求,那么限制字节长度应该怎么处理呢?请看如下所示:

 InputFilter[] filters = new InputFilter[]{new LimitCharLengthFilter(12)};editext.setFilters(filters);
import java.io.UnsupportedEncodingException;import android.text.InputFilter;
import android.text.Spanned;/*** 限制输入的字符的数量** @author xfc*/
public class LimitCharLengthFilter implements InputFilter {private int mMax = 0;public LimitCharLengthFilter(int mMax) {super();this.mMax = mMax;}public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) {int bytes = 0;int sourceBytes = 0;int keep = 0;try {bytes = dest.toString().getBytes("GBK").length;sourceBytes = source.toString().getBytes("GBK").length;if (bytes + sourceBytes <= mMax) {keep = source.length();} else {for (int i = 0; i < source.length(); i++) {int currentSoureBytes = source.subSequence(0, i + 1).toString().getBytes("GBK").length;if (bytes + currentSoureBytes > mMax) {keep = i;break;}}}} catch (UnsupportedEncodingException e) {e.printStackTrace();}if (keep <= 0) {return "";}return source.subSequence(start, keep + start);}
}
这样是不是很简单就实现了呢,快去试试效果吧。

限制Editext输入字节长度相关推荐

  1. vue设置输入框输入长度_基于vue的限制输入框可输入字节数的解决方案

    2018年07月11日 基于vue的限制输入框可输入字节数的解决方案 需求:input输入框输入上限4个字节.达到上限则不能继续输入,其中1个英文表示1个字节.1个中文表示2个字节. 看到这个需求,第 ...

  2. html中设置文本框长度,Html的文本框怎样限制录入文本框的字节长度

    匿名用户 1级 2013-07-20 回答 试试这个: limit.jsview plaincopy to clipboardprint? function limit(){ var txtNote; ...

  3. python获取输入框内容长度_python3 tkinter 获取输入字符串长度

    python 3  获取输入字符长度 #-*- coding:utf-8 -*- from tkinter import * from tkinter import messagebox def ge ...

  4. Mysql varchar 字节长度

    1.我们经常 mysql创建 varchar(20)  name这个 20长度 究竟是表示的字符数还是字节数?根编码字符集又有没有关系? 首先 mysql 5.X 以上的版本的 定义中 表示的字符长度 ...

  5. 数据库varchar类型长度是指字符长度还是字节长度呢?

    MySql 5.X 以上的版本的定义中表示的字符长度,如上varchar(20)你既可以添加20个英文字符,也可以添加二十个中文字符. 4.X 的版本表示的是字节长度,会根据字符集转变内容字节长度存储 ...

  6. Edittext限制输入字符长度,解决中英文混用情况保证规定长度

    好比知乎中的提问流程,提问内容不应该太长,所以会进行事先设置:最后我使用InputFilter解决了这个问题,代码如下. 首先普及一下GB18030编码标准:GB 18030,全称:国家标准 GB 1 ...

  7. 数据库中varchar类型长度是指字符长度还是字节长度?两种定义方法

    Oracle中varchar2类型的字段长度单位默认是按照byte来定义, 比如常见写法varchar2(10)  代表只接收最大10字节长度 这种定义情况下10字节只能插入3个汉字,(数字字母只占一 ...

  8. C/C++在不确定输入字符串长度情况下,对其进行存储和字符操作问题

    在很多IT公司的编程笔试题中都会提到,输如长度未知的字符串以及整数数组进行各种操作,本文进行简单地归纳. 对于输入一行随意大小的(中间不含空格)字符串求其长度并输出指定位上字符,用C++可以编程为: ...

  9. Java编程笔试时输入问题:如何输入固定长度、不定长度的一维数组?如何输入固定长度、不定长度的二维数组?

    Java编程笔试时输入问题: 如何输入固定长度.不定长度的一维数组? 如何输入固定长度.不定长度的二维数组? 如何将数组中的内容直接输出,不要中括号和逗号? 文章目录 ==Java编程笔试时输入问题= ...

最新文章

  1. 深圳大学李猛教授报告:海洋古菌的微生物组学(11月17日晚7点)
  2. linux cenots 查看cpu核数
  3. jquery添加的html元素按钮为什么不执行类样式绑定的click事件
  4. Linux CentOS 6.x 关闭图形化界面的方法
  5. uC/OS-II源码分析(六)
  6. ROS与STM32F407实现消息通信(含源码)
  7. @scheduled注解配置时间_「玩转SpringBoot」用好条件相关注解,开启自动配置之门...
  8. poj 2355 Railway tickets 很纯的dp
  9. linux基础命令总结-1
  10. java modbus通讯协议_Modbus通 讯 协 议
  11. 北京大学计算机语言学,北京大学计算语言学教育部重点实验室
  12. cocos2d-x初步
  13. 1.0 Linux 网络相关概念和修改IP地址的方法
  14. 基于51单片机的温度监测控制系统仿真程序原理图设计
  15. Python 绘制五角星 【初识Python】
  16. 怎么撰写一份优秀的数据分析报告(一)
  17. Calcite的PullUp规则
  18. 网络通信TCP/UDP
  19. 基于快速傅里叶变换实现的狗声识别器(人工智能)
  20. java套打实现_java 套打 实现

热门文章

  1. 微信小程序(组件:路由、表单、媒体、自定义组件,插槽、组件通讯、侦听器、生命周期)
  2. word尝试打开文件时遇到错误 解决方法
  3. 如何在网站里插入视频
  4. 反向的css动画,动画方向 | animation-direction
  5. Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy
  6. 【python常用小工具】python打印26个英文字母
  7. 带你认识SSD的SATA、mSATA 、PCIe和M.2四种主流接口。联想g31t-lm2主板接线图
  8. MySQL 批量插入数据,一次插入多少行数据效率最高?
  9. jdbc连接字符集为us7ascii的oracle数据库乱码解决办法
  10. 腾讯地图API使用指南