【问题标题】:How to get the progress value of seekbar, which was BEFORE the actual progress value?如何获取 seekbar 的进度值,在实际进度值之前?
【发布时间】:2018-12-11 20:40:26
【问题描述】:

我有一个问题,如何获取 seekbar 的进度值,在实际进度值之前?我该如何做到这一点是一个代码,它可以在 seekbar 上获取实际进度值:

seek.setOnSeekBarChangeListener(new 

OnSeekBarChangeListener() {

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
        // TODO Auto-generated method stub
        p=progress;
    }
});

当您使用搜索栏时,这部分代码非常流行。但我找不到任何解决方案如何获得int progress 之前的int progress。所以我正在寻找类似的东西:int progressbefore。提前致谢。

【问题讨论】:

  • 不如尝试在onStartTrackingTouch内部取得进展
  • 我知道你的意思,但它是第一个值。我想更新这个值你喜欢 int actual progress - 1 这样直接进步之前。
  • 您将在哪里使用该变量?在回调方法中还是在其他地方?
  • 创建私有变量来保存之前的进度值
  • @Nikos Hidalgo 我将在 onProgressChanged 中使用这个变量。

标签: java android android-seekbar


【解决方案1】:

在类级别声明一个变量progressBefore

private int progressBefore = 0;

还有这些方法:

private int getProgressBefore() {
    return progressBefore;
}

private void setProgressBefore(int p) {
    progressBefore = p;
}

onProgressChanged() 内部,每次你想做某事时检查它,最后分配给它新的progress

seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        int p = getProgressBefore();
        // do something
        setProgressBefore(progress);
    }
});

【讨论】:

    【解决方案2】:
    seek.setOnSeekBarChangeListener(new 
    
    OnSeekBarChangeListener() {
    private int prevousProgressValue = 0;
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }
    
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        prevoiusProgresValue = seekBar.getProgress(); //start value;
    }
    
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
        // TODO something with current
    
        previousProgresValue = progress;
    }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2020-04-05
      • 2014-01-15
      • 2022-10-24
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      相关资源
      最近更新 更多