2017-06-15 21 views
6

setCountDownの機能によってクロノメーターの機能が24未満になるライブラリ機能があれば、Androidのクロノメーターのサポートライブラリ

+0

どのようにAPI 24のコピー&ペーストソースに関するプロジェクトにし、代わりにその 'Chronometer'を使用していますか? – azizbekian

+0

あなたは精巧にできますか? –

+0

[this](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/Chronometer.java)のクラスをパッケージに貼り付けるとどうなりますか? 'android.widget.Chronometer'の代わりに' com.your.package.Chronometer'クラスを使用してください。 – azizbekian

答えて

0

Android Documentationによると、以下のAPIレベル24では不可能です。Chronometerウィジェットはカウントアップのみ使用します。そうする必要がある場合は、CountDownTimerに行ってください。例については

final int oneSecond = 1000; // in milliSeconds i.e. 1 second 
final int tenSeconds = 100000; // 100 seconds 
CountDownTimer cTimer = new CountDownTimer(100000, oneSecond) { 

    public void onTick(long millisUntilFinished) { 

      int totalTime = 60000; // in milliseconds i.e. 60 seconds 
      String v = String.format("%02d", millisUntilFinished/totalTime); 
      int va = (int)((millisUntilFinished%totalTime)/oneSecond); 
      textView.setText("remaining seconds: " +v+":"+String.format("%02d",va)); 
    } 

    public void onFinish() { 
     textView.setText("done!"); 
    } 
    }; 
    cTimer.start(); 

EDIT:

あなたはGitHubのソリューションで行くことにしたい場合は、thisthis

0

を見ているあなたは、単純なハンドルスレッドにRXJavaを試すことができます、タイマー、その他の多くの機能を備えています。

タイマーオペレータのドキュメントは、この意見:

が与えられた遅延

後に特定のアイテムを発すること観測を作成します。したがって、あなたが観察している行動はexpected-タイマー()放出します遅れた後のただ一つの項目。

間隔演算子は、一定の間隔で間隔を空けたアイテムを放出します。例えば

、この観測は、項目ごとに秒を放出する:

Observable.interval(1、TimeUnit.SECONDS)。

そして完全な例:

Observable.interval(1,TimeUnit.SECONDS, Schedulers.io()) 
     .take(300) // take 300 second 
     .map(v -> 300 - v) 
     .subscribe(
      onNext -> { 
       //on every second pass trigger 
      }, 
      onError -> { 
       //do on error 
      }, 
      () -> { 
       //do on complete 
      }, 
      onSubscribe -> { 
       //do once on subscription 
      }); 
関連する問題