EditText限制,要求制定内容范围内

湫稚 2017-08-03 01:38:13
EditText中,如何限制填入的内容最低为500,最大值为10000,且输入的数字为100的整数倍。求详细的代码。
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganshenml 2017-08-04
  • 打赏
  • 举报
回复
1.监听事件的处理: 添加addTextChangedListener事件,在里面监听数值的变化,如果小于500,则强制变为500,如果大于10000,则强制变为10000. 同时将edittext设置为仅数值输入。如果不为100的整数倍,则处理为相近的100倍数的整数; 2.设计上的处理,实际上可以把100这个数值提取出来放在edittext外面,保证edittext的范围未1-100即可;
jklwan 2017-08-04
  • 打赏
  • 举报
回复
根据焦点判断,焦点离开后判断输入的内容,输入的不符合要求就置为空,给予提示。

edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean focus) {
            if (!focus) {
                 // 失去焦点,判断内容。
            }
        }
    });
ohpoloha 2017-08-04
  • 打赏
  • 举报
回复
可以试试看用textwatcher制定你自己的规则
江三木洛 2017-08-04
  • 打赏
  • 举报
回复
<EditText android:id="@+id/et" android:maxLength="5" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number"/> ((EditText) findViewById(R.id.et)).setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { int num = Integer.parseInt(((EditText) v).getText().toString()); if (num < 500) { Toast.makeText(MainActivity.this, "低于500", Toast.LENGTH_SHORT).show(); ((EditText) v).setText(""); } if (num > 10000) { Toast.makeText(MainActivity.this, "高于10000", Toast.LENGTH_SHORT).show(); ((EditText) v).setText(""); } if (num % 100 != 0) { Toast.makeText(MainActivity.this, "输入的数字必须为100的整数倍", Toast.LENGTH_SHORT).show(); ((EditText) v).setText(""); } } } });
zhaomissnan 2017-08-04
  • 打赏
  • 举报
回复
自己改下正则表达
zhaomissnan 2017-08-04
  • 打赏
  • 举报
回复
//判断是否符合要求 if (!RegexUtils.is15_60(mActivity.etRinse.getText().toString())) { ToastUtils.showShortToast(mActivity, "冲洗时间不能小于15秒或者大于60秒"); return; } //正则表达式判断 public static boolean is15_60(String input) { if (StringUtils.isEmpty(input)) { return false; } String regex = "[1][5-9]|[2-5][0-9]|60"; // 编译正则表达式 Pattern pattern = Pattern.compile(regex); return pattern.matches(regex, input); } /** * 判断字符串是否为null或长度为0 * * @param s 待校验字符串 * @return {@code true}: 空<br> {@code false}: 不为空 */ public static boolean isEmpty(CharSequence s) { return s == null || s.length() == 0; }

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧