From 31d695131bdaa46a382eb15cf851e197327ab677 Mon Sep 17 00:00:00 2001 From: Maxime Graulich <maxime.graulich@gmail.com> Date: Wed, 9 Apr 2014 14:14:37 +0000 Subject: [PATCH] Android: allow user to change value in TextEdit --- .../Android/src/org/geuz/onelab/Stepper.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java b/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java index afcdb6a761..fe0922828b 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;} -- GitLab