2012-09-10 38 views
0

我有一個帶有textchange監聽器的edittext。在偵聽器中,我測試用戶的輸入是否是我要測試的位置,如果輸入處於最小 - 最大邊界內。取消textchange監聽器事件

valueText.addTextChangedListener(new TextWatcher() { 
    String backup = "0"; 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     if (count > 0 && !s.equals(backup)) { 
      if (Integer.parseInt(s.toString()) > getMaximum()) { 
       valueText.setText(backup); 
      } 
     } 
    } 

    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     backup = s.toString(); 
    } 

    public void afterTextChanged(Editable s) { 
    } 
}); 

目前,我有這個,但有一個簡單的方法來「取消」的textchange事件,這樣沒有任何反應,當該值以上,最高?

或者我可以使用inputfilter來設置最小和最大輸入嗎?

THX :)

編輯:我發現這裏的解決方案:在您的EditText XML定義最大長度:http://tech.chitgoks.com/2011/06/27/android-set-min-max-value-an-edittext-accepts/

回答

0

可以使用Android。

+0

是的,但我不需要最小/最大值,沒有最大長度:) –

0
InputFilter.LengthFilter mLenthFilter=new InputFilter.LengthFilter(25); // pls define yr max length mine was 25. 
     valueText.setFilters(new InputFilter[]{mLenthFilter});