亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建相對于當前實時時間的倒計時器?

創建相對于當前實時時間的倒計時器?

泛舟湖上清波郎朗 2023-08-23 17:04:26
我正在嘗試創建一個倒計時,顯示一天中剩余的當前時間,如下所示的布局,因此有 3 個 TextViews ID 分別是天、小時、分鐘如何獲取當前剩余時間并將其顯示在文本視圖中?但也允許計時器在一天中的任意時間開始,因此 24 小時開始時間可以從午夜開始,因此上午 10 點的計時器經過時間將顯示還剩 14 小時,或者 24 小時時間從早上 6 點開始,因此計時器上午 10 點將顯示還剩 18 小時。如果有人知道如何做到這一切,那么從午夜開始然后以某種方式在代碼中添加 3 個小時會更容易嗎?@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    int timeinminutes = 1;    sSlUp = findViewById(R.id.redtimeerview);    //final TextView hours = (TextView)findViewById(R.id.hours);    countDownTimer = new CountDownTimer(timeinminutes * 60000, 1000) {        TextView countdownText = findViewById(R.id.countdown_text);        public void onTick(long millisUntilFinished) {            long scnds = 1;            scnds = (millisUntilFinished / 1000);            countdownText.setText("" + scnds);        }        public void onFinish() {            countDownTimer.start();        }    }.start();    init();    progressBar.setVisibility(View.VISIBLE);    mTextureView = (TextureView) findViewById(R.id.previewCam);    mBtLaunchActivity = (Button) findViewById(R.id.bt_launch_activity);    TextView textView = (TextView) findViewById(R.id.currentDate);    setDate(textView);    mBtLaunchActivity.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            launchActivity();        }    });
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

根據要求,這里是一次嘗試。請注意,該答案尚未經過測試。


所有與 不相關的數據Time均已被刪除。


int timeInMinutes = 1;


    countDownTimer = new CountDownTimer(timeInMinutes * 60000, 1000) {


        public void onTick(long millisUntilFinished) {

            Time time = new Time(millisUntilFinished);


            final int hours = time.getHours();

            final int min = time.getMinutes();

            final int scnds = time.getSeconds();


            countdownText.setText("" + scnds);

        }


        public void onFinish() {

            // Everytime the countDown stops restart it?

            //countDownTimer.start();

        }

    }.start();


查看完整回答
反對 回復 2023-08-23
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

我相信這讓我走上了正確的軌道,雖然它顯然不正確,因為 .getHours 和 .getMinutes 顯然自 api 14 以來已經貶值了。我發現我可以進行比較,然后根據時間進行設置


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    int timeinminutes = 1;


    countDownTimer = new CountDownTimer(timeinminutes * 60000, 1000) {

        public void onTick(long millisUntilFinished) {


            Time time = new Time(millisUntilFinished);


            final int hours = time.compareTo(Calendar.getInstance().getTime()); //added a compareto and set that against what the current time is

            final int min = time.getMinutes();

            //final int scnds = time.getSeconds();

            long scnds = 1;

            scnds = (millisUntilFinished / 1000);

            countdownText.setText("" + scnds);

            countdownHours.setText("" +hours); // sets to ID of textview

        }


        public void onFinish() {

            countDownTimer.start();

        }

    }.start();

當我測試它時,它說 1 小時(當前時間是 22:54),所以我確定它是正確的,但我必須明天檢查。但謝謝你給我指明了正確的方向 :D 我現在需要做的就是弄清楚如何抵消時間,所以目前應該是 4 小時


查看完整回答
反對 回復 2023-08-23
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

從互聯網上搜索了很多之后,我無法獲得任何內置功能。也許有任何功能,但對我來說,我習慣做這樣的代碼,它確實對我有用。只需復制粘貼它并根據您的文本視圖設置timerTV。


  var cT: CountDownTimer? = null


  fun timer() {

    val calendar = Calendar.getInstance()

    calendar.time

    Log.d("Current time: ", calendar.time.toString())


    val hourCurrent = calendar.get(Calendar.HOUR)

    val minutCurrent = calendar.get(Calendar.MINUTE)

    val secondCurrent = calendar.get(Calendar.SECOND)

    

    var hourSub = 24 - hourCurrent

    var minSub = 60 - minutCurrent

    var secSub = 60 - secondCurrent



    cT = object : CountDownTimer(1000, 1000) {

        override fun onTick(millisUntilFinished: Long) {


            timerTV.setText("$hourSub:$minSub:$secSub")


        }


        override fun onFinish() {

            timer()

        }

    }

    cT?.start()

}


override fun onDestroy() {

    super.onDestroy()

    cT?.cancel()

}


查看完整回答
反對 回復 2023-08-23
  • 3 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號