我需要实现一个只允许用户输入20到60的edittext字段。如果用户输入的数字超出范围,将显示一个对话框并强制用户再次输入。
因此,文本观察器无用,因为它无法阻止用户输入低于20的数字。
onFocusChangedListener既不是,如果用户点击“完成”按钮,则edittext不会失去焦点,因此触发器也不会触发。
此外,edittext位于选项卡视图中,因此当用户单击另一个选项卡时,触发器将触发,但用户无法再为该edittext输入值。
如果您对此有任何疑问,请与我分享。
非常感谢。
答案 0 :(得分:2)
Alvin是对的...这是我的代码,一旦输入就会对文本执行某些操作,但可能很容易成为验证序列:
smsMsgBody_editText.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Do something fancy
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void afterTextChanged(Editable s) { }
});
答案 1 :(得分:1)
如何用onTextChanged跟踪EditText字段?
答案 2 :(得分:1)
使用这些
android:maxLength="2" android:numeric="integer"
然后当你得到如下数字:number.gettext()时,你会进行验证,如果数字> 60且低于20你可以做number.setHint("number no valid");