Android Integer作为计时器等待时间

时间:2013-03-15 09:44:44

标签: android variables time timer

我正在尝试根据用户选择进行更改计时器等待时间。我的计时器正在工作,但设置时间的变量不是。等待ime的公式为((60/bpm)*1000)-190bpm=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);
            }
    });

1 个答案:

答案 0 :(得分:1)

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