当我以编程方式设置 SeekBar 的进度时,我的 onProgressChanged() 事件不会被触发,但是当我以物理方式移动 SeekBar 滑块时它会被触发得非常好。
我希望在使用 setProgress() 时触发该事件 - Android 开发人员参考甚至指出:
public abstract void onProgressChanged (SeekBar seekBar, int progress, boolean fromUser)
进度级别已更改的通知。客户端可以使用 fromUser 参数来区分用户发起的更改和以编程方式发生的更改。
我的项目中的一些代码片段:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
final SeekBar mySeekBar = ((SeekBar) findViewById(R.id.mySeekBar));
mySeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// Do some stuff
}
}
}
@Override
protected void onResume() {
super.onResume();
final SeekBar mySeekBar = ((SeekBar) findViewById(R.id.mySeekBar));
mySeekBar.setProgress(someValue); // This SHOULD trigger onProgressChanged(), but it doesn't...
}