2017-12-22 19 views
0

저는 android studio를 처음 접해서 조각 내에서 타이머를 만들려고합니다. 내가 버튼을 클릭했을 때 타이머를 시작하는 앱이 필요하다.조각에 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

많은 문제가 있습니다 : (INT, INT) 수업에 적용 할 수 없습니다 CounterClass에서 CounterClass() '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

타이머 클래스에서 메서드 재정의를 –

+0

수행하는 방법을 모르겠다는 것을 알고 있습니다. 신경 쓰지 마세요. 그것의 또 다른 오류를 보여주는 "거기에 'android.os.CountDownTimer'에서 사용할 수있는 기본 생성자가 없습니다" –