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) });  

代碼不多但有效,各位能夠嘗試一下。ide

 

做者:xzy2046,轉載需註明。博客主頁: http://blog.csdn.net/xzy2046
相關文章
相關標籤/搜索