Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android edittext最小值和最大值_Java_Android_Android Edittext_Max_Min - Fatal编程技术网

Java android edittext最小值和最大值

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

我正在开发一款android应用程序。。实际上,我需要为EditText条目设置一个最小值和最大值。我的最小值是18,最大值是65。我做了这个的精确代码

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());