2011-09-15 9 views
0

ロング値を手動でchronometer.myに設定すると正確ですが、これをchronometer.setBase()に設定すると、正しい時刻ではなく特殊な文字が表示されます。クロノメーターが間違ったロング値を設定しました

// hourInt = 4 
    // minInt = 34 
    // secInt = 40 
    Calendar cal1 = Calendar.getInstance(); 
        cal1.set(Calendar.HOUR, hourInt); 
        cal1.set(Calendar.MINUTE, minInt); 
        cal1.set(Calendar.SECOND, secInt); 

       long codeBase = cal1.getTime().getTime(); 
       System.out.println("Code Base..."+codeBase); 
chronometer.setBase(codeBase); 
       chronometer.start(); 

00:0)と00:0 *とすべての特殊文字のような特殊な文字を表示します。 カスタムロング値の設定方法。

答えて

2

私は試行錯誤でそれを把握するまで、自分自身で苦労していました。

Chronometer.setBase()は、elapsed real timeに基づいてミリ秒が必要です。つまり、エポック・ミリ秒は機能しません。エポックミリ秒を使用することができるようにするために、あなたはこのようChronometer.setBase()を呼び出す必要があり:

chronometer.setBase(SystemClock.elapsedRealtime() - 
    System.currentTimeMillis() + codeBase); 

数学を効果的経過リアルタイムミリ秒にエポックミリ秒に変換します。

+0

おかげで私の多くの時間が節約できました。 :) – Akshay

関連する問題