diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
index 007aa6e7c97e6088f624e1628914878c7784fe68..329c8e9eef23843f40690f7071d0a6b43966b3b3 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsModelFragment.java
@@ -43,7 +43,7 @@ public class OptionsModelFragment extends Fragment{
 	
 	public void refresh() {
 		if(_gmsh == null) return;
-		if(_listView != null){ _listView.clear(); params.clear();}
+		if(_listView != null){ _listView.clear(); params.clear();} // TODO temporary, remove must be implemented in listview
 		this.getAvailableParam();
 		if(_listView != null) _listView.refresh();
 	}
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
index 8e91e8d118e1ea6784ae10d66a10f494f7c094f2..1569652433b5ebf380ce5379873986c2fca9f26c 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java
@@ -1,5 +1,6 @@
 package org.geuz.onelab;
 
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 
 import android.content.Context;
@@ -47,11 +48,13 @@ public class ParameterNumber extends Parameter{
 	
 	protected void update(){
 		super.update();
-		int nDecimal = String.valueOf(this.getStep()).length() - String.valueOf(this.getStep()).lastIndexOf('.') - 1; // hack for double round
+		int nDecimal = String.valueOf(_min).length() - String.valueOf(_min).lastIndexOf('.') - 1; // hack for double round
 		if(_bar != null) {
-			_title.setText(getShortName() + " (" + Math.round(_value*Math.pow(10, nDecimal))/Math.pow(10, nDecimal) + ")");
-			_bar.setProgress((int) ((_value-_min)/_step));
-			_bar.setMax((int) ((_max-_min)/_step));
+			DecimalFormat df = new DecimalFormat ( ) ;
+			df.setMaximumFractionDigits(nDecimal) ;
+			_title.setText(getShortName() + " (" + df.format(_value)+ ")");
+			_bar.setMax(100);
+			_bar.setProgress((int)(100*(_value-_min)/(_max-_min)));
 			_bar.setEnabled(!this.isReadOnly());
 		}
 		else if(_spinner != null)
@@ -79,7 +82,7 @@ public class ParameterNumber extends Parameter{
 		if(value == _value) return;
 		_value = value;
 		_changed = true;
-		if(mListener != null) mListener.OnParameterChanged();
+		//if(mListener != null) mListener.OnParameterChanged();
 	}
 	public void setMin(double min) {_min = min;this.update();}
 	public void setMax(double max) {_max = max;this.update();}
@@ -168,6 +171,7 @@ public class ParameterNumber extends Parameter{
 				public void onNothingSelected(AdapterView<?> arg0) {}
 				public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
 					_gmsh.setParam(getType(), getName(), String.valueOf(_values.get(pos)));
+					if(mListener != null) mListener.OnParameterChanged();
 				}
 			});
 		}
@@ -175,15 +179,18 @@ public class ParameterNumber extends Parameter{
 			paramLayout.addView(_bar);
 			_bar.setEnabled(!_readOnly);
 			_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-				
 				public void onStopTrackingTouch(SeekBar seekBar) {
-					_gmsh.setParam(getType(), getName(), String.valueOf(getValue())); // update parameter and the perform a check
+					double value = getMin() + (getMax() - getMin())*seekBar.getProgress()/100;
+					value = (value >= _min)? value : _min;
+					_gmsh.setParam(getType(), getName(), String.valueOf(value));
+					if(mListener != null) mListener.OnParameterChanged();
+					
 				}
 				
 				public void onStartTrackingTouch(SeekBar seekBar) {}
 				
 				public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-					setValue(getMin() + getStep()*(double)progress);
+					
 				}
 			});
 		}
@@ -194,8 +201,8 @@ public class ParameterNumber extends Parameter{
 			_checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 				
 				public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-					setValue((isChecked)? 1 : 0);
-					_gmsh.setParam(getType(), getName(), String.valueOf(_value));
+					_gmsh.setParam(getType(), getName(), (isChecked)? "1" : "0");
+					if(mListener != null) mListener.OnParameterChanged();
 				}
 			});
 		}
@@ -208,8 +215,9 @@ public class ParameterNumber extends Parameter{
 					if(keyCode == KeyEvent.KEYCODE_ENTER){ // hide the keyboard
 						InputMethodManager imm = (InputMethodManager)_context.getSystemService(
 							      Context.INPUT_METHOD_SERVICE);
-							imm.hideSoftInputFromWindow(_edittext.getWindowToken(), 0);
-							_gmsh.setParam(getType(), getName(), String.valueOf(_value));
+						imm.hideSoftInputFromWindow(_edittext.getWindowToken(), 0);
+						_gmsh.setParam(getType(), getName(), String.valueOf(_value));
+						if(mListener != null) mListener.OnParameterChanged();
 						_edittext.clearFocus();
 						return true;
 					}