输入值时如何限制编辑文本超出比较值?

时间:2015-12-17 14:31:01

标签: android listview android-edittext

我在列表视图自定义行中有一个编辑文本。如果我尝试输入一些值,我将在文本Watcher中比较该值。现在,如果输入的值超过了比较值,那个数字我不想在编辑模式或焦点中允许该字符但编辑文本。 这是我的代码

holder.etCredit.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            creditNoteBean = data.get(holder.refPosition);
            String availCredit = holder.txtAvailableCredit.getText().toString();
            String entrVal = s.toString();
            if (entrVal != null && !entrVal.isEmpty()) {
                if (Double.parseDouble(availCredit) < Double.parseDouble(entrVal)) {
                    Toast.makeText(context, "Exceeding available credit ", Toast.LENGTH_SHORT).show();
                } else {
                    creditNoteBean.setSelectedCreditNotePrice(s.toString());
                }
            }
        }
        @Override
        public void afterTextChanged(Editable s) {

        }
    });

1 个答案:

答案 0 :(得分:0)

获取文本Watcher中的值的长度,并将条件放在文本Watcher中具有最大值长度的编辑文本上。

EditText et = new EditText(this);
int max = 10;    
et.setFilters(new InputFilter[] {new InputFilter.LengthFilter(max)});

或者如果文本Watcher中的值的长度是固定的,则可以添加属性android:maxLength="value in text Watcher"

希望它有所帮助。