如何在 HH:MM:SS(小时:分钟:秒)中显示倒数计时器

has*_*tag 0 java android countdown countdowntimer kotlin

如何从我制作的 XMl android 中倒计时 'HH: mm: ss',当 24 小时内没有交互时,则无法再次进行交易或无法再次访问

此代码是倒数计时器的设计 UI。

倒计时器

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constrainlayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="18dp"
        android:layout_marginEnd="20dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/bg_color_orange"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/app_bar">

        <TextView
            android:id="@+id/textView_Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="18dp"
            android:text="Please make a payment Immediatelly"
            android:textColor="@android:color/black"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/constrainlayout" />

        <TextView
            android:id="@+id/textView_TimeCountDown"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="18dp"
            android:text="13 Hour: 59 Minute: 21 Second"
            android:textColor="@android:color/black"
            android:textSize="22sp"
            app:layout_constraintEnd_toEndOf="@+id/textView_Title"
            app:layout_constraintStart_toStartOf="@+id/textView_Title"
            app:layout_constraintTop_toBottomOf="@+id/textView_Title" />

        <TextView
            android:id="@+id/textView_Day"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="18dp"
            android:layout_marginBottom="18dp"
            android:text="(Before Thursday, 16 January 2020, 13:33 WIB)"
            android:textColor="@android:color/black"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="@+id/textView_Title"
            app:layout_constraintStart_toStartOf="@+id/textView_Title"
            app:layout_constraintTop_toBottomOf="@id/textView_TimeCountDown" />

    </androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

该代码将像这样显示

倒计时器

Nen*_*dra 7

对你有帮助

 private void startTimer(int noOfMinutes) {
        CountDownTimer  countDownTimer = new CountDownTimer(noOfMinutes, 1000) {
        public void onTick(long millisUntilFinished) {
            long millis = millisUntilFinished;
            //Convert milliseconds into hour,minute and seconds
            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)));
            countdownTimerText.setText(hms);//set text
        }
        public void onFinish() {
            countdownTimerText.setText("TIME'S UP!!"); //On finish change timer text
        }
    }.start();
Run Code Online (Sandbox Code Playgroud)

已编辑

//1584700200 is timestamp in milii seconds (Friday, March 20, 2020 10:30:00 AM) 
  //1000(1sec) is time interval to call onTick method

  new CountDownTimer(1584700200, 1000){

        @Override

        public void onTick(long millisUntilFinished) {
            long millis = millisUntilFinished;
            String hms = String.format("%02d:%02d:%02d:%02d",
            TimeUnit.HOURS.toDays(TimeUnit.MILLISECONDS.toHours(millis)),
            (TimeUnit.MILLISECONDS.toHours(millis) - 
            TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(millis))), 
            (TimeUnit.MILLISECONDS.toMinutes(millis) - 
            TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))), (TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
            countdownTimerText.setText(hms);//set text 
        }

        @Override

        public void onFinish() {
            /*clearing all fields and displaying countdown finished message          */

            countdownTimerText.setText("Count down completed");
        }
    }.start();
}
Run Code Online (Sandbox Code Playgroud)

科特林

private fun countDown() {
    val countDownTimer = object : CountDownTimer(1584700200, 1000) {
        override fun onTick(p0: Long) {
            val millis: Long = p0
            val hms = String.format(
                "%02d:%02d:%02d:%02d",
                TimeUnit.HOURS.toDays(TimeUnit.MILLISECONDS.toDays(millis)),
                (TimeUnit.MILLISECONDS.toHours(millis) - TimeUnit.DAYS.toHours(
                    TimeUnit.MILLISECONDS.toDays(
                        millis
                    )
                )),
                (TimeUnit.MILLISECONDS.toMinutes(millis) -
                        TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))),
                (TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(
                    TimeUnit.MILLISECONDS.toMinutes(millis)
                ))
            )

            System.out.println("Time : " + hms)
            countdownTimerText.setText(hms);//set text
        }

        override fun onFinish() {
            /*clearing all fields and displaying countdown finished message          */
            countdownTimerText.setText("Count down completed");
            System.out.println("Time up")
        }
    }
    countDownTimer.start()
}
Run Code Online (Sandbox Code Playgroud)