2013-10-15 26 views
1

我想开始我的寻找巴尔从基地3和增加2和最大是9如何设置,我需要3,5,7,9,11。我的代码是设置自定义值,以寻求酒吧

它不工作,因为我想,请帮助

SeekBar sb1 = (SeekBar)findViewById(R.id.sBtaxitype); 

    sb1.setMax(11); 
    sb1.setLeft(3); 
    sb1.incrementProgressBy(2); 
    sb1.setProgress(0); // Set it to zero so it will start at the left-most edge 
    sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      if (progress < 3) { 
       progress = 3; 
       progress = progress + 2; 
      } else { 
       progress = progress + 2; // Add the minimum value (10) 
      } 

      TextView text = (TextView)findViewById(R.id.tvTaxitype); 
      text.setText(Integer.toString(progress)); 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) {} 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) {} 

    }); 
+0

什么是当前发生的事情... –

+0

首先是1,那么接下来就是5话又说回来5,然后7 – Rohit

回答

1

setLeft()是用于定位。 A SeekBar始终以0值开始并上升到最大值(默认为100,通过setMax()覆盖)。

要获得3-11范围,请致电setMax(8),然后在检索当前值时将getProgress()的结果加3。

+0

如u说,我用它,它只是增加一个,不要让,男使用setleft( 0),最大值为8,现在sb1.incrementProgressBy(2),并且正在进行增量进度再次2,但没有得到我需要的值 – Rohit

0

要移动SeekBar以增量测试fromUser并将进度设置为所需的值。 在这个例子中,进度指示器会在您移动时“捕捉”到最近的10个。

@Override 
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
{ 
    // round progress up or down to the nearest 10 
    int roundedProgress = (int) (Math.rint((double) progress/10) * 10); 
    if (fromUser) 
    { 
    seekBar.setProgress(roundedProgress); 
    } 
}