0

私はTimePicker曲の再生時間を選択できるアプリを持っていますCountDownTimer.imを使用して残り時間を適切に表示するのに問題があります.もちろん、すべてが舞台裏でミリ秒単位でほとんど進行しています.正しい変換を行っていると思いますが、画面に表示されるのは完全に間違った値だけです。

最初の引数として 3600000(1hour) を使用してテスト CountDownTimer を作成すると、すべて正常に動作しますが、 timepicker を 0 に、分を 1 にすると、1 分の再生だけが必要なように、12 時間とランダムに見えるものが表示されます分と秒のスロットの値。tp.getCurrentHour();ゼロに設定するとゼロをtp.getCurrentMinute();返し、期待どおりに1を返します。この部分で何かが起こっているようです。まだ何が起こっているのかわかりません:

再生時間 = (時間 * (60 * 60 * 1000)) + (分 * (60 * 1000)); starttime = SystemClock.elapsedRealtime();

tv2.setText("totaltest "+startime+playtime);6000046929803 の値が表示されるのはなぜですか? それは明らかに間違っている...

残りのコードは次のとおりです。

                TimePicker tp =(TimePicker)findViewById(R.id.timePicker1);

                    public void onClick(View v) {
                                    // TODO Auto-generated method stub
                                    long hour = tp.getCurrentHour();
                                    long min = tp.getCurrentMinute();
                                    playtime = (hour * (60 * 60 * 1000)) + (min * (60 * 1000));
                                    startime = SystemClock.elapsedRealtime();
tv2.setText("totaltest "+startime+playtime);
            timer = new CountDownTimer(startime+playtime,1000){

                                @Override
                                public void onFinish() {
                                    tv.setText("finished");
                                }

                                //@SuppressLint("ParserError")
                                @Override
                                public void onTick(long millisUntilFinished) {

                                    String display = DateUtils.formatElapsedTime(millisUntilFinished/1000);

                                    tv.setText(display);

                                }

                            }.start();
4

1 に答える 1

1

試す:

String display = DateUtils.formatElapsedTime(millisUntilFinished/1000);

それはあなたのために変換を行います。

と:

timer = new CountDownTimer(playtime,1000){ 

CounterDownTimer はミリ秒単位で実行されることを期待しているためです。

于 2012-10-08T18:33:20.327 に答える