2017-12-22 21 views
0

私はアンドロイドスタジオが新しく、フラグメント内にタイマーを作ろうとしています。ボタンをクリックしたときにタイマーを起動するアプリが必要です。フラグメントでCountdownTimerを使用するにはどうすればよいですか?

これは私のフラグメントのコード

public class tab3Fragment extends Fragment { 
    private static final String TAG = "tab3Fragment"; 

    CountDownTimer countDownTimer= new CounterClass(180000, 1000); 
    private Button btn3; 
    private TextView timer; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.tab3_fragment,container,false); 
     timer= (TextView) view.findViewById(R.id.timer); 
btn3= (Button) view.findViewById(R.id.startBTN); 

     btn3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       countDownTimer.start(); 
      } 
     }); 
     return view; 

    } 

    public class CounterClass extends CountDownTimer{ 
     @Override 
     public void onTick(long millisUntilFinished) { 
      long millis= millisUntilFinished; 
      String hms= String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), 
        TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), 
        TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)) 
      ); 
      timer.setText(hms); 
     } 
    } 

} 

である私が正しいかどうかはわかりません。

+0

のようなカウントダウンタイマーを実装することになっていますか? – R2R

+0

あなたは今直面している問題? –

+0

多くの問題があります。CounterClassで CounterClassは、()(int型、int型)に適用することはできません とクラスのCounterClassは「CountDownTimerに「)(onFinish」のいずれかでなければならない抽象宣言するか、抽象moethodを実装します。 –

答えて

0

あなたはbtn3ボタンを宣言していません。それは現在nullです。

あなたはエラーがどのようなものです。この

CountDownTimer countDownTimer = new android.os.CountDownTimer(100,0){ 
      @Override 
      public void onTick(long millisUntilFinished) { 
        long millis= millisUntilFinished; 
      String hms= String.format("%02d:%02d:%02d", 

    TimeUnit.MILLISECONDS.toHours(millis), 
         TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), 
         TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)) 
       ); 
       timer.setText(hms); 
       } 

       @Override 
       public void onFinish() { 

       } 
      } 
+0

ありがとう。そのことを忘れた –

+0

あなたのタイマークラスのメソッドonFinishをオーバーライドしてください。 –

+0

どうすればいいのか分かりません。 心配しないでください。それは別のエラーを示しています "デフォルトのコンストラクタが 'android.os.CountDownTimer'で利用可能です" " –

関連する問題