Whenever the progress bar of SeekBar is moved, it will call the inbuild method of OnProgressChange(), inside which we can write our functionality
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class SeekBarDemo extends Activity implements OnSeekBarChangeListener, OnFocusChangeListener {
SeekBar seekBar;
EditText editText;
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
<-- get seekBar and editTexts from xml -->
// Set onClick Listeners
seekBar.setOnSeekBarChangeListener(this);
editText.setOnFocusChangeListener(this);
// Initial setup
editText.setText("2000.00");
this.onFocusChange(editText, false);
}
// Whenever progress of seekbar is changed, this method will be called
@Override
public void onProgressChange(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser) {
int fieldValue = progress * 1000;
editText.setText(String.format("%d", fieldValue));
}
}
// This method wil be called once mouse is pressed on progress of seekbar
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub (This method is defined in OnSeekBarChangeListener)
}
// This method wil be called once mouse is released from progress of seekbar
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub (This method is defined in OnSeekBarChangeListener)
}
// Whenever EditText field is clicked, this method will be called
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
Double fieldValue = Double.valueOf(((EditText) v).getText().toString());
int progress = (int) (fieldValue / 1000);
seekBar.setProgress(progress);
}
}
}

