Android edittext InputFilter 输入控制
        【摘要】 
                    InputFilter 可能需要对用户的输入进行一些限制,可以为EditText Widget设置一个InputFilter以实现这一功能 
如: 
/*         * 使用输入过滤器约束用户输入         * (只能输入两个大写字母)         * setFilters方法需要调用一个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)
     
    
- 
    
     
    
    
     
              });
     
    
 下例 小数点后两位
  
   - 
    
     
    
    
     
      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;
     
    
- 
    
     
    
    
     
      				}
     
    
- 
    
     
    
    
     
      			};
     
    
 
文章来源: chengsy.blog.csdn.net,作者:程思扬,版权归原作者所有,如需转载,请联系作者。
原文链接:chengsy.blog.csdn.net/article/details/81387956
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)