diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java b/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java index afcdb6a761176e169849c34aa232b9644b1427d9..fe0922828b8a68351fbbd58e611dc8ae4b6d4168 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java @@ -5,6 +5,8 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.Button; import android.widget.EditText; +import android.text.TextWatcher; +import android.text.Editable; class Stepper extends LinearLayout{ @@ -36,6 +38,16 @@ class Stepper extends LinearLayout{ dec(); } }); + _valTxt.addTextChangedListener(new TextWatcher() { + public void afterTextChanged(Editable s){} + public void beforeTextChanged(CharSequence s, int start, int count, int after){} + public void onTextChanged(CharSequence s, int start, int before, int count) { + try { + setValueButText(Integer.parseInt(s.toString())); + } + catch (NumberFormatException e) {} + } + }); } public interface OnValueChangedListener { @@ -50,13 +62,16 @@ class Stepper extends LinearLayout{ public void setMaximum(int max){_max = max;} public void setMinimum(int min){_min = min;} public void setValue(int val){ + setValueButText(val); + _valTxt.setText(Integer.toString(_val)); + } + public void setValueButText(int val){ if(_max > _min) { if(val == _max) _incBtn.setEnabled(false); else if(val == _min) _decBtn.setEnabled(false); else {_incBtn.setEnabled(true); _decBtn.setEnabled(true);} } _val = val; - _valTxt.setText(Integer.toString(_val)); if(_listener != null) _listener.onValueChanged(); } public int getMaximum(){return _max;}