我正在制作一个edittext,我想强制用户输入一个小于200的数字,我看到人们展示了如何限制字符数,但有人知道如何限制用户输入而不使用一个800节如果声明?即。用户可以输入1- 199之间的任何数字,但不能输入数字201。
答案 0 :(得分:1)
我不清楚你是想将字段限制为少于200个字符,还是限制为小于200的数字值(例如“199”)。如果是后者,请设置属性android:inputType="number"
,然后向EditText添加OnFocusChangeListener
,实现onFocusChange()
方法以检查EditText的值,如果无效则更改/ alert / remove
答案 1 :(得分:1)
首先设置您的edittext输入类型编号,然后
edittext.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){
String strEnteredVal = edittext.getText().toString();
if(!strEnteredVal.equals("")){
int num=Integer.parseInt(strEnteredVal);
if(num<200){
edittext.setText(""+num);
}else{
edittext.setText("");
}
}
});
答案 2 :(得分:1)
Android的数字微调器/选择器
根据Android Time Picker Dialog中使用的Google内部数字微调器(尚未公开),为Android找到了一个方便的数字微调器。
它是在Apache 2.0下发布的,可以找到
http://www.quietlycoding.com/?p=5
有
mStart = DEFAULT_MIN; mEnd = DEFAULT_MAX;
在java文件的顶部,我已经声明了DEFAULT_MAX和DEFAULT_MIN:
private static final int DEFAULT_MAX = 200;
private static final int DEFAULT_MIN = 0;