I want the SeekBar
progress to change whenever I click a button. Using setProgress()
works only for initial value. It throws an error if I use it after some changes.
seekBarHandler = new Handler(); // must be created in the same thread that created the SeekBar seekBar = (SeekBar) findViewById(R. id. my_seekbar); // you should define max in xml, but if you need to do this by code, you must set max as 0 and then your desired value.
The SeekBar class is a subclass of ProgressBar , which contains a getProgress() method. Calling PRICEbar. getProgress() will return the value you are looking for.
Below are the steps for Creating SeekBar Android Application: Step1: Create a new project. After that, you will have java and XML file. Step2: Open your xml file and add a SeekBar and TextView for message as shown below, max attribute in SeekBar define the maximum it can take.
Perhaps you should try to use a handler? I use this in an app of mine and works fine.
1) When creating your SeekBar:
// ... seekBarHandler = new Handler(); // must be created in the same thread that created the SeekBar seekBar = (SeekBar) findViewById(R.id.my_seekbar); // you should define max in xml, but if you need to do this by code, you must set max as 0 and then your desired value. this is because a bug in SeekBar (issue 12945) (don't really checked if it was corrected) seekBar.setMax(0); seekBar.setMax(max); seekBar.setProgress(progress); // ...
2) When your button is clicked
// ... seekBarHandler.post(new Runnable() { @Override public void run() { if (seekBar != null) { seekBar.setMax(0); seekBar.setMax(max); seekBar.setProgress(newProgress); } } }); // ...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With