0

我正在尝试根据用户选择来更改计时器等待时间。我的计时器正在工作,但设置时间的变量没有。等待 ime((60/bpm)*1000)-190和 for的公式bpm=60是给810的,这是正确的,但是当我61在应用程序论坛中增加 bpm 时给-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);
            }
    });
4

1 回答 1

1

就像 njzk2 所说,您可以使用浮点数,然后 do Float.valueOf(float f).intValue(),这将通过舍入和截断将浮点数强制转换为 int 。它应该足以满足您的目的。

于 2013-03-15T11:09:16.333 回答