/**
*版权:
*@创建者: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