我在列表视图自定义行中有一个编辑文本。如果我尝试输入一些值,我将在文本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) {
}
});
答案 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"
。
希望它有所帮助。