我试图获取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);
}
});
任何人都可以给我一个正当的理由吗?
答案 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);