当我单击按钮时,我希望seekbar进度更改.使用setProgress()仅适用于初始值,如果在进行某些更改后使用,则会抛出错误.
解决方法
也许你应该尝试使用一个处理程序?我在我的应用程序中使用这个,工作正常.
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); } } }); // ...