Android SeekBar设置进度值

shi*_*iva 18 android seekbar

我希望SeekBar每当我点击按钮时进度都会改变.使用setProgress()仅适用于初始值.如果我在一些更改后使用它会抛出错误.

PFR*_*LIM 27

也许你应该尝试使用处理程序?我在我的应用程序中使用它并且工作正常.

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);
// ...
Run Code Online (Sandbox Code Playgroud)

2)单击按钮时

// ...
seekBarHandler.post(new Runnable() {
    @Override
    public void run() {
        if (seekBar != null) {
            seekBar.setMax(0);
            seekBar.setMax(max);
            seekBar.setProgress(newProgress);
        }
    }
});
// ...
Run Code Online (Sandbox Code Playgroud)


she*_*lym 6

尝试这个 :

seekBar.setMax(50);
seekBar.setProgress(22);
Run Code Online (Sandbox Code Playgroud)

代替 :

seekBar.setProgress(22); seekBar.setMax(50);

只有先设置 Max Value,SeekBar 才能在设置 progressValue 时了解实际取得了多少进展。

当我想要我的进度条默认值时,这实际上对我产生了影响


小智 1

您需要调用setOnSeekbarChangeListener()您的搜索栏对象,并让您的活动实现OnSeekbarChangeListener(),在该函数中您可以做任何您想做的事情。