![](/img/trans.png)
[英]How We define range between min and max custom value like 85 and 110 for EditText in android
[英]Is there a way to define a min and max value for a EditText. EG 20 - 200 (not starting at 1)
我到處都能看到這個例子,我希望找到一種方法來定義EditText
的最小值和最大值。 我有點理解它的作用,但我發現如果最小值大於 10,它就會中斷。有什么方法可以更改此代碼,以便最小值可以是任何數字嗎? 有沒有更簡單的方法來執行此操作,因為它對於一項簡單的任務來說似乎過於復雜了?
ClassName.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "200")});
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;
}
會有一些事件,這里我正在處理按鈕點擊事件
@Override
public void onClick(View view) {
String guessSize=editText.getText().toString();
if(Integer.parseInt(guessSize)<=20 || Integer.parseInt(guessSize)>=200)
{
//Anything you want
Toast.makeText(MainActivity.this, "No wroking", Toast.LENGTH_SHORT).show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.