Android edittext InputFilter 输入控制

简介: Android edittext InputFilter 输入控制

InputFilter 可能需要对用户的输入进行一些限制,可以为EditText Widget设置一个InputFilter以实现这一功能

如:

/*
         * 使用输入过滤器约束用户输入
         * (只能输入两个大写字母)
         * setFilters方法需要调用一个InputFilter对象数组。
         * 本例中将所有输入的小写字母自动转换为大写字母,而且被限定在
         * 两个字符
         */
        final EditText text_f = (EditText)findViewById(R.id.editText01);
        text_f.setFilters(new InputFilter[]{
                        new InputFilter.AllCaps(),
                        new InputFilter.LengthFilter(2)
        });

下例 小数点后两位

1.private void initEt() {
    tv1=(EditText) findViewById(R.id.et1);
    tv2=(EditText) findViewById(R.id.et2);
    tv1.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
    tv2.setTransformationMethod(PasswordTransformationMethod.getInstance());
    String s="adb";
    tv1.setTextKeepState(s);
    tv2.setText(s);
    tv1.setFilters(new InputFilter[] { lengthfilter });
  }
  // 设置小数位数控制
      InputFilter lengthfilter = new InputFilter() {
        public CharSequence filter(CharSequence source, int start, int end,
            Spanned dest, int dstart, int dend) {
          System.out.println(source.toString()+"-->"+start+"-->"+end);
          System.out.println(dest.toString()+"-->"+dstart+"-->"+dend);
          // 删除等特殊字符,直接返回
          if ("".equals(source.toString())) {
            return null;
          }
          String dValue = dest.toString();
          String[] splitArray = dValue.split("\\.");
          if (splitArray.length > 1) {
            String dotValue = splitArray[1];
            int diff = dotValue.length() + 1 - 2;
            if (diff > 0) {
              CharSequence c=source.subSequence(start, end - diff);
              System.out.println(c.toString());
              return c;
            }
          }
          return null;
        }
      };
目录
相关文章
|
3月前
|
XML 监控 Android开发
Android Studio App开发入门之文本输入EditText的讲解及使用(附源码 包括编辑框、焦点变更监听器、文本变化监听器 )
Android Studio App开发入门之文本输入EditText的讲解及使用(附源码 包括编辑框、焦点变更监听器、文本变化监听器 )
191 0
|
2月前
|
XML Java Android开发
14. 【Android教程】文本输入框 EditText
14. 【Android教程】文本输入框 EditText
132 2
|
Java Android开发 iOS开发
Android TextView 与 EditText 的区别与使用
Android TextView 与 EditText 的区别与使用
133 0
|
Java Android开发
Android 中设置EditText输入框提示文本hint的字体大小
Android 中设置EditText输入框提示文本hint的字体大小
262 0
|
XML Java Android开发
Android 中通过Java代码动态生成EditText视图,并循环遍历EditText取出遍历的ID和文本框的值
Android 中通过Java代码动态生成EditText视图,并循环遍历EditText取出遍历的ID和文本框的值
126 0
|
XML Android开发 数据格式
Android EditText 获取/失去焦点
项目的需求中,又一个4位数的验证码界面,小弟才疏学浅,只想到了用线性布局里面放四个EditText。 需求需要输入内容后,自动跳到下一个位置聚焦,删除指定位置后,自动跳到上一个位置聚焦,由于聚焦/非聚焦UI展示得都不同,所以每个editText都会频繁的设置焦点变化。 之前因为是调用的系统键盘,所以,editText和键盘绑定后处理起来非常方便,但是,我们需要自定义一个展示在UI上的数字键盘,于是就有些bug。 bug不难,但是有点杂乱,下面是我的一点解决办法,总结一下,以后也记得更清楚!
|
Android开发
Android EditText输入框不聚焦,点击跳转
Android EditText输入框不聚焦,点击跳转
|
XML Java 数据安全/隐私保护
Android 输入框(EditText)的输入限制,数字英文邮箱,可见\隐藏切换,踩过的坑!
最近做到了登录注册模块的各种输入判定,监听等等,因为需求上的需要,还是搞了好一会儿,今天在这总结一下。 常规的输入框输入需求有纯数字,字母,混合输入,邮箱,键盘默认打开数字键盘,密码可见性,键盘的收起弹出等等。
|
XML 缓存 API
Android 垃圾分类APP(四)垃圾分类之图像输入
Android 垃圾分类APP(四)垃圾分类之图像输入
273 0
Android 垃圾分类APP(四)垃圾分类之图像输入
|
XML Android开发 数据安全/隐私保护
Android开发之输入框EditText介绍
Android开发之输入框EditText介绍
324 0