Android EditText设置输入范围1-100

/**
  *版权:
  *@创建者:shuquan
  *创建时间:2020/10/26
  *模块:com.zsh.cdb.utils
  *描述:输入范围提示
  */

public class EditextInput {

     /**
      * 传入区间值   假设:1-100   1-10
      * @param edit   控件
      * @param context
      * @param max     最大数
      * @param min     最小数
      */
    public static void inputWatch(final EditText edit, final Context context, final int max, final int min) {


        edit.addTextChangedListener(new TextWatcher() {
            int l = 0;记录字符串被删除字符之前,字符串的长度
            int location = 0;//记录光标的位置
            String data;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // TODO Auto-generated method stub
                l = s.length();
                location = edit.getSelectionStart();
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                if (!TextUtils.isEmpty(s.toString())){
                Pattern p = Pattern.compile("[0-9]*");
                Matcher m = p.matcher(s.toString());
                if(m.matches() ){
                    int number = Integer.valueOf(s.toString());
                if (number<=max&&number>=min) {
                    System.out.print("OK!");
                    if(s!=null){
                        data= s.toString();
                    }
                } else {
                    System.out.print("False!");
                    new ToastUtil(context).showShortToast("请输入范围在" + min + "-" + max + "之间的整数");
                    edit.setText(data);
                    edit.setSelection(data.length());
                }
                }else{
                    if(!TextUtils.isEmpty(s.toString())){
                        new ToastUtil(context).showShortToast("请输入数字");
                    }
                    edit.setText("");
                }
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub

            }
        });
    }
}

调用
 

   EditextInput.inputWatch(et_virtual, this, 100, 0);//区间范围0-100 可根据需求传递 例如1-10

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值