2014-11-16 37 views
0

我正在構建一個android應用程序,其中用戶輸入2值爲兩個editText,其中只包含整數值的長度爲2.檢查兩個EditText的值在android中?

用戶在此EditText中輸入最大值和最小值。

現在的問題是有什麼辦法,以便我可以限制用戶填寫任何最大值在最小Edittext然後最大Editext。

可能在提交按鈕或我的其他來源。

這裏是代碼 -

max = (EditText) dialogView.findViewById(R.id.max); 
    min = (EditText) dialogView.findViewById(R.id.min); 

請幫助....

+0

[有什麼辦法可以在android中爲edittext定義最小值和最大值?](http://stackoverflow.com/questions/14212518/is-there-any-way-to -define-A-最小和-MAX值換的EditText功能於機器人) –

回答

1

您提交按鈕的處理程序您可以檢查是否分鐘的值比最高值更大,顯示用戶合適的消息

int maxVal = Integer.valueOf(max.getText().toString().trim()); 
int minVal = Integer.valueOf(min.getText().toString().trim()); 
if (minVal > maxVal){ 
... 
} 
2

您應該爲EditText創建一個InputFilter。訪問this link

首先創建一個類實現輸入過濾:

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:

EditText et = (EditText) findViewById(R.id.your_edittext); 
et.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "100"); 

請注意,您可以使用其他的EditText的值設置其它編輯框的MaxValue(如果需要)

Regards

Hana Bizhani