Android 如何在片段上使用倒计时?
我是android studio的新手,我正在尝试在一个片段中创建一个计时器。我想要一个应用程序,当我点击按钮时启动计时器 这是我的片段代码Android 如何在片段上使用倒计时?,android,android-fragments,countdowntimer,Android,Android Fragments,Countdowntimer,我是android studio的新手,我正在尝试在一个片段中创建一个计时器。我想要一个应用程序,当我点击按钮时启动计时器 这是我的片段代码 public class tab3Fragment extends Fragment { private static final String TAG = "tab3Fragment"; CountDownTimer countDownTimer= new CounterClass(180000, 1000); private
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);
}
}
}
我不知道我是否正确。您尚未声明您的btn3按钮。它当前为空 你应该像这样实现倒计时
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() {
}
}
错误是什么?您现在面临的问题是什么?有很多问题:反类中的反类()不能应用于(int,int),类“反类”必须声明为抽象或实现抽象moethod“onFinish()'在倒计时中。覆盖计时器类中的onFinish方法我很抱歉,我不知道怎么做,没关系。它显示了另一个错误“在‘android.os.CountDownTimer’中没有可用的默认构造函数”哇,它工作了!谢谢你,伙计。我有一个问题,虽然计时器没有显示00:00:00,但它在00:00:01停止。