getProgress()不起作用

时间:2012-11-05 13:51:35

标签: android

我试图获取SeekBar的值,但它无法正常工作。这是代码:

            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);
                }
            });

任何人都可以给我一个正当的理由吗?

2 个答案:

答案 0 :(得分:0)

例如100/50等于0.5,但由于两个值都是int,结果也转换为int,因此转换为int的0.5为0,0 * 100为0.

你需要把它加倍:

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

答案 1 :(得分:0)

我应该在方法中使用arg0而不是sb:

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