Android中SeekBar实现的回调

时间:2013-03-14 05:54:47

标签: android callback seekbar

为搜索栏实现了以下回调:

void onProgressChanged(Seekbar seekBar, int progress, boolean fromTouch);

void onStartTrackingTouch(Seekbar seekBar);

void onStopTrackingTouch(Seekbar seekBar);
  1. 但是在搜索栏上按下OK后会收到什么回调?

  2. 用户刚刚开始移动搜索栏时,会收到
  3. onStartTrackingTouch()。 当用户完成移动搜索条时,会收到onStopTrackingTouch()。 我在这些定义中是正确的,还是其他的两个回调?

  4. 有人可以帮助解决这两个问题吗? 感谢

1 个答案:

答案 0 :(得分:1)

你是什么意思

  

但是在搜索栏上按下OK后会收到什么回调?

你有一个应该实现某些东西的确定按钮吗?如果是这样,您可以使用整数值来保存进度更改时的进度,然后当您按下确定按钮时,您可以执行任何您想要的操作。看看这个例子

    seekerSpacing.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            doSomethingAfterTracking();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            doSomethingWhenTrackingStarts();
        }

        /**
        * seekBar   The SeekBar whose progress has changed
        * progress  The current progress level. This will be in the range 0..max where max was set by setMax(int). (The default value for max is 100.)
        * fromUser  True if the progress change was initiated by the user.
        */
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            setMyCurrentProgress(progress);
            doSomeOtherMethodIfRequired();
        }
    });

您可以查看Android docs以获取正确的解释。但这是一个快速摘要。

只要您触摸搜索栏,就会调用onStartTrackingTouch方法。触摸搜索条滑块

时,将始终调用此方法

只要放开搜索栏,就会调用onStopTrackingTouch方法。当您放开搜索条滑块时,将始终调用此方法。

一旦更改了搜索栏的进度,就会调用onProgressChanged方法。只有在进度发生变化时才会调用此方法