我正在尝试根据用户选择进行更改计时器等待时间。我的计时器正在工作,但设置时间的变量不是。等待ime的公式为((60/bpm)*1000)-190
,bpm=60
的公式为810
,这是正确的,但是当我在应用论坛中将bpm增加到61
时,给-190
。为什么呢?
计时器代码:
metronomepp.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.i("Metronome", ""+timetw);
//timetw=810;
if(isChecked) {
currentTask = new TimerTask() {
@Override
public void run() {
if (metronome.isPlaying()) { metronome.pause(); }
metronome.seekTo(0);
metronome.start();
}
};
myTimer.schedule(currentTask, 0, timetw);
} else {
currentTask.cancel();
}
}
});
Bpm increase and timetw change code:
plus.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
bpm++;
timetw=(60000/(bpm*1000))-190;
Log.i("PlusTW", ""+timetw);
Log.i("PlusBPM", ""+bpm);
curbpm.setText(""+bpm);
}
});
答案 0 :(得分:1)
就像njzk2所说,你可以使用浮点数,然后执行Float.valueOf(float f).intValue()
,它会通过舍入和截断将浮点数强制转换为int。它应该适合您的目的。