如何在Range Seekbar中设置进度间隔

时间:2014-09-23 13:17:22

标签: java android android-intent android-activity android-fragments

Hai我使用给定的例子创建了一个两个拇指范围搜索栏。但是现在我遇到了一个问题..  现在我获得了最小值和最大值部分。下一个问题是有自定义  搜索条中滑块的值。就像我想要500,1000,1500 ....等但是根据示例代码  它重视进展1,2,3..etc我正在为我的主类提供代码。

来源链接:' https://code.google.com/p/range-seek-bar/

   RangeSeekBar<Integer>seekBar = new RangeSeekBar<Integer>(1000, 1000000, context);

   seekBar.setOnRangeSeekBarChangeListener(new OnRangeSeekBarChangeListener<Integer>() {

   @Override

  public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue,Integer maxValue) 

  {

  //handle changed range values

  Log.i("", "Price Range Values: MIN=" + minValue + ", MAX=" + maxValue);

  String range = "Price Range:" + minValue + "-" + maxValue;

  price_range.setText(range); 

1 个答案:

答案 0 :(得分:2)

我正在详细阐述 rentires 的想法。所以你需要做的是将你的最小和最大范围除以500,然后在onRangeSeekBarValuesChanged中将它乘以500。

代码

    int startValue = 1000;
    int endValue = 100000;
    final int factor = 500;
    RangeSeekBar<Integer> seekBar = new RangeSeekBar<Integer>(startValue/factor, endValue/factor, this);
    seekBar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
        @Override
        public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) {
            minValue = minValue*factor
            maxValue *= factor;
            value.setText(minValue + " : " + maxValue);
        }
    });

为了让用户更加透明他选择的范围,您还应该启用notifyWhileDragging。 (这可确保在用户拖动onRangeSeekBarValuesChanged时)始终调用RangeSeekBar方法。

seekBar.setNotifyWhileDragging(true);