2014-02-23 95 views
0

我想,我的EditText將接受來自一個給定的範圍內浮動值,並接受小數點後只有兩個數字,說從0到99.99的Android的EditText值約束

在我的XML,我已經包括

android:inputType="numberDecimal" 

好心幫忙。

+2

請參閱EditText.setFilters() – pskink

+0

似乎「重複」接受的答案有奇怪的副作用... – manuell

回答

0

您應該添加addTextChangedListener您EDITTEXT 是這樣的:

editText.addTextChangedListener(new TextWatcher() { 


      @Override 
      public void afterTextChanged(Editable arg0) { 
      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, 
        int count, int after) { 
      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, 
        int before, int count) { 

      } 
     }); 

按照你的邏輯,你可以實現輸入檢查。例如:

public void afterTextChanged(Editable s) { 

    String number = editText.getText().toString(); 
    if (number .length != 0) { 
     int number = Integer.parseInt(added_number); 

     if (number > 99) 
      Toast.makeText(getApplicationContext, "Not more than 99", Toast.LENGTH_SHORT).show(); 
    } 

} 

希望它有幫助。 如果您正在測試動態輸入,您應該重寫onTextChanged。 我有一些示例代碼,如果你喜歡

+1

他需要的是過濾器。 – AndyFaizan

+0

照顧細緻? – alexk

+0

好的,經過一番閱讀,過濾器是最簡單的方法。 – alexk