0

ユーザーの選択に基づいてタイマーの待機時間を変更しようとしています。タイマーは機能していますが、時間を設定するための変数が機能していません。待っている ime の公式はであり、これは正しいですが、アプリケーション フォーラムでbpm を増やす((60/bpm)*1000)-190と、bpm=60が与えられます。なんで?81061-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が言ったように、floatを使用してから実行するとFloat.valueOf(float f).intValue()、丸めと切り捨てによってfloatをintに強制できます。それはあなたの目的のために十分にうまくいくはずです。

于 2013-03-15T11:09:16.333 に答える