我正在尝试对编辑文本应用某种验证.用户应该只能输入1到60之间的整数.我想知道是否应该让他们输入他们喜欢的内容,当他们关注edittext时检查内容,如果超出界限则将值更改为默认值,说0.
或者有没有办法限制键盘只允许整数?
更新:
我正在以编程方式做所有事情.到目前为止,我已经能够限制只有数字输入,并通过实现以下最多2个字符.我仍然在努力限制0到60之间的值.
editText.setInputType( InputType.TYPE_CLASS_NUMBER );
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(2);
editText.setFilters(FilterArray);
最佳答案
您可以使用android.text.method.KeyListener将当前输入替换为您喜欢的任何内容.
由于您不必更改所有键,您可以使用addTextChangedListener(TextWatcher watcher)方法,如下所示:
EditText editT = (EditText) findViewById(R.id.your_id);
editT.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s,int start,int count,int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s,int before,int count) {
// TODO Auto-generated method stub
});
利用它来检查您的输入是否超出您的预期,您甚至可以通过检查该循环来忽略键.
在XML中:
>如果您使用的是数字,请使用android:inputType =“number”.
>要将数字的数量限制为2,请包括android:maxLength =“2”.