开发过程经常遇到要输入用户名等类似要限制输入字数的要求,我们可以用InputFilter来实现,

下面是继承的InputFilter:


public class MyInputFilter implements InputFilter {   private Paint mPaint;      private int mMaxWidth;   private static final String TAG = "MyInputFilter";      private int EDIT_WIDTH = 280;      private int mPadding = 10;      public MyInputFilter(Paint paint, int maxWidth) {      if (paint != null) {         mPaint = paint;      } else {         mPaint = new Paint();         mPaint.setTextSize(30F);      }      if (maxWidth > 0) {         mMaxWidth = maxWidth - mPadding;      } else {         mMaxWidth = EDIT_WIDTH;      }   }   @Override   public CharSequence filter(CharSequence source, int start, int end,         Spanned dest, int dstart, int dend) {      float w = mPaint.measureText(dest.toString() + source.toString());      if (w > mMaxWidth) {         //TODO: remind the user not to input anymore         return "";      }      return source;   }}

这样来使用它:

 /*    * Set edit text input max length constraint to border.    */   public static void setEditTextFilter(EditText edit) {           int width = edit.getWidth();           Utils.log("Uitls", "edit width = " + width);               Paint paint = new Paint();      paint.setTextSize(edit.getTextSize());           InputFilter[] filters = { new MyInputFilter(paint, width) };           edit.setFilters(filters);   }

用这样方法的优点是可以用在多个输入框中,可是有个缺点是当用联想输入法一次输入较长的中文词语或英文单词后,不会自动截断词语或单词。


(全文完)

更多相关文章

  1. Android实现多语言
  2. Android(安卓)Gradle 插件中文指南
  3. Android开发 System.out.println(); 控制台输出方法
  4. android AutoCompleteTextView 实现输入提示,类似百度支持输入拼
  5. android 车机电话的通讯录联系人搜索实现解析 ------- 填坑日记
  6. 同样line-height下ios和Android显示不一致的问题
  7. android/NDK开发assets资源中文名打包问题
  8. Linux Kernel and Android(安卓)休眠与唤醒(中文版)
  9. android JNI C代码对sdcard中文件的操作

随机推荐

  1. Android获取本周本月本年的第一天和最后
  2. Android(安卓)Permission List
  3. android 自动化压力测试-monkey 3 命令参
  4. Android实现将View保存成Bitmap的方法
  5. android仿探探图片拖拽功能
  6. android:intent 发送接收数据
  7. Android静态安全检测 -> 证书弱校验
  8. Android 实现图片加水印
  9. Android 运行ndk-build遇到的坑
  10. Widget分区域点击