android上文本框输入限制最大字节数
16lz
2021-01-23
public class MaxByteLengthEditText extends EditText {private int maxByteLength = 100;private String encoding = "GBK";public MaxByteLengthEditText(Context context) {super(context);init();}public MaxByteLengthEditText(Context context,AttributeSet attrs) { super(context,attrs);init();}private void init() {setFilters(new InputFilter[] {inputFilter});}public int getMaxByteLength() {return maxByteLength;}public void setMaxByteLength(int maxByteLength) {this.maxByteLength = maxByteLength;}public String getEncoding() {return encoding;}public void setEncoding(String encoding) {this.encoding = encoding;}/** * input输入过滤 */private InputFilter inputFilter = new InputFilter() {@Overridepublic CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) { try { int len = 0; boolean more = false; do { SpannableStringBuilder builder = new SpannableStringBuilder(dest).replace(dstart, dend, source.subSequence(start, end)); len = builder.toString().getBytes(encoding).length; more = len > maxByteLength; if (more) { end--; source = source.subSequence(start, end); } } while (more); return source; } catch (UnsupportedEncodingException e) { return "Exception"; }} };}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer