Java android edittext最小值和最大值
我正在开发一款android应用程序。。实际上,我需要为EditText条目设置一个最小值和最大值。我的最小值是18,最大值是65。我做了这个的精确代码Java android edittext最小值和最大值,java,android,android-edittext,max,min,Java,Android,Android Edittext,Max,Min,我正在开发一款android应用程序。。实际上,我需要为EditText条目设置一个最小值和最大值。我的最小值是18,最大值是65。我做了这个的精确代码 package com.test; import android.text.InputFilter; import android.text.Spanned; public class InputFilterMinMax implements InputFilter { private int min, max; pub
package com.test;
import android.text.InputFilter;
import android.text.Spanned;
public class InputFilterMinMax implements InputFilter {
private int min, max;
public InputFilterMinMax(int min, int max) {
this.min = min;
this.max = max;
}
public InputFilterMinMax(String min, String max) {
this.min = Integer.parseInt(min);
this.max = Integer.parseInt(max);
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
try {
int input = Integer.parseInt(dest.toString() + source.toString());
if (isInRange(min, max, input))
return null;
} catch (NumberFormatException nfe) { }
return "";
}
private boolean isInRange(int a, int b, int c) {
return b > a ? c >= a && c <= b : c >= b && c <= a;
}
}
EditText et = (EditText) findViewById(R.id.myEditText);
et.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "12")});
package.com.test;
导入android.text.InputFilter;
导入android.text.span;
公共类InputFilterMax实现InputFilter{
私有整数最小值,最大值;
公共InputFilterMinMax(最小整数,最大整数){
this.min=min;
this.max=max;
}
公共InputFilterMinMax(字符串最小值、字符串最大值){
this.min=整数.parseInt(min);
this.max=Integer.parseInt(max);
}
@凌驾
公共CharSequence筛选器(CharSequence源、int开始、int结束、跨区目标、int开始、int结束){
试一试{
int input=Integer.parseInt(dest.toString()+source.toString());
if(isInRange(最小、最大、输入))
返回null;
}catch(NumberFormatException nfe){}
返回“”;
}
私有布尔值isInRange(int a、int b、int c){
返回b>a?c>=a&&c=b&&c您应该替换该行:
int input = Integer.parseInt(dest.toString() + source.toString());
与
查看以了解为什么尝试记录值或尝试调试mmode。您是否尝试在您提供的链接中从其Rajesh4Uguys中回答…该解决方案很好,对我有效…感谢jeet的评论…让我试试..哦..jeet不起作用…我想我需要为此编写更多代码..但我在anrid c方面没有太多经验oding..这个解决方案不适用于大数字,比如说年!不..它不起作用…因为当我输入18和65这两个数字时,它不起作用..但它适用于1-9之间的第一个数字,它不会像ex一样起作用。如果最小值是10,那么它将不起作用…我们将无法键入第一个字母1…这就是问题..我认为您应该将最小界限始终设置为0。否则,如果您想要的数字在40和120之间,例如,那么将不接受任何数字,因为如果您想要数字100,并且开始按“1”、“0”、“0”,任何正确的筛选器都不会接受第一个数字,因为它不高于40我把你的回复当作答案,即使它不起作用…谢谢你的回复…非常感谢。。。
int input = Integer.parseInt(source.toString());