2012-11-05 14 views
0

我试图获得SeekBar的值,但它不能正常工作。这里是代码:getProgress()不工作

  sb=(SeekBar)findViewById(R.id.seekBar1); 
      sb.setMax(100); 
      sb.setProgress(20); 
      sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() 
      { 

       public void onStopTrackingTouch(SeekBar arg0) 
       { 


       } 

       public void onStartTrackingTouch(SeekBar arg0) { 


       } 

       public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) 
       { 
        sb.setMax(100); 
        ShakeSilent.this.setTitle((sb.getMax()/sb.getProgress())*100); 
       } 
      }); 

任何人都可以给我一个合适的理由吗?

+0

可能是你需要setProgress之前调用setOnSeekBarChangeListener? – auselen

回答

0

我应该在使用的方法,而不是某人为arg0:

ShakeSilent.this.setTitle((((float)arg0.getMax()/(float)arg0.getProgress()))*100); 
0

例如五十零分之百是等于0.5,但由于这两个值是整型,结果也转换为int,所以0.5转换为int是0,0 * 100是0

你需要将其丢加倍:

ShakeSilent.this.setTitle((sb.getMax()/(double)sb.getProgress())* 100);

+0

确定但它给了我例外。它不会将Text设置为零! –

+2

“100/50等于0.5”,这让我的一天:) – auselen