Android EditText输入最大值提示功能

复制代码
public class LengthFilter implements InputFilter {  
     public LengthFilter(int max) {  
         mMax = max;  
     }  
  
     @Override  
     public 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 (mErrorToast == null) {  
                 mErrorToast = Toast.makeText(ShowDetailCommentActivity.this, R.string.comment_input_overflow,  
                         Toast.LENGTH_SHORT);  
             }  
             mErrorToast.show();  
             return "";  
         } else if (keep >= end - start) {  
             return null; // keep original  
         } else {  
             keep += start;  
             if (mErrorToast == null) {  
                 mErrorToast = Toast.makeText(ShowDetailCommentActivity.this, R.string.comment_input_overflow,  
                         Toast.LENGTH_SHORT);  
             }  
             mErrorToast.show();  
             if (Character.isHighSurrogate(source.charAt(keep - 1))) {  
                 --keep;  
                 if (keep == start) {  
                     return "";  
                 }  
             }  
             return source.subSequence(start, keep);  
         }  
     }  
  
     private int mMax;  
 }  
复制代码
mEditText.setFilters(new InputFilter[] { new LengthFilter(mMaxTextNum) });  

代码很少但有效,各位可以尝试一下。

 

作者:xzy2046,转载需注明。博客主页:http://blog.csdn.net/xzy2046
posted @   developer_Kale  阅读(2175)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
网站流量统计工具
点击右上角即可分享
微信分享提示