Ответ 1
Возможно, вам стоит попытаться использовать обработчик? Я использую это в своем приложении и прекрасно работаю.
1) При создании вашего 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) Когда ваша кнопка нажата
// ...
seekBarHandler.post(new Runnable() {
@Override
public void run() {
if (seekBar != null) {
seekBar.setMax(0);
seekBar.setMax(max);
seekBar.setProgress(newProgress);
}
}
});
// ...