【问题标题】:how to set time of timepicker to countdowntimer?如何将时间选择器的时间设置为倒计时?
【发布时间】:2015-09-15 11:46:33
【问题描述】:

我在我的应用程序中使用 timepicker,现在我可以从 timepicker 设置时间并将其发送到下一个活动,现在在下一个活动中我正在使用倒数计时器,现在在我的倒数计时器中我想设置那个时间并开始定时器,下面是我的时间选择器和倒计时代码

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

                String timeofevent = edttmofevent.getText().toString();

                Intent intent = new Intent(AddNewEvent.this, EventDetails.class);
                intent.putExtra("times",timeofevent);
                startActivity(intent);
            }
        });



private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            int hour;
            //String am_pm;
            if (hourOfDay > 12) {
                hour = hourOfDay - 12;
               // am_pm = "PM";
            } else {
                hour = hourOfDay;
                //am_pm = "AM";
            }
            edttmofevent.setText(hour + " : " + minute + " ");
        }
    };

倒计时

Intent intent=getIntent();
        tim=intent.getStringExtra("times");
 timerValue.setText(tim);
      //  final CounterClass timer = new CounterClass(Integer.parseInt(timerValue.getText().toString()), 1000);
        playbc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startTime = SystemClock.uptimeMillis();

                customHandler.postDelayed(updateTimerThread, 0);
               // timer.start();

            }
        });

        pausebc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                timeSwapBuff += timeInMilliseconds;
                customHandler.removeCallbacks(updateTimerThread);

               // timer.cancel();

            }
        });


    }

    private Runnable updateTimerThread = new Runnable() {
        public void run() {
            timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
            updatedTime = timeSwapBuff + timeInMilliseconds;
            int secs = (int) (updatedTime / 1000);

            int mins = secs / 60;
            int hours = mins/60;
            secs = secs % 60;
            int milliseconds = (int) (updatedTime % 1000);
            timerValue.setText(""+ hours +":" + mins + ":"
                    + String.format("%02d", secs) + ":"
                    + String.format("%03d", milliseconds));
            customHandler.postDelayed(this, 0);

        }
    };

【问题讨论】:

  • timeInMilliseconds = SystemClock.uptimeMillis() - startTime;您将 startTime 设置为 SystemClock.uptimeMillis() 。这是逻辑错误纠正它
  • @Nithinlal 那么如果我设置 tim 会从那个时间开始吗?
  • @Nithinlal 你能纠正答案吗?

标签: android countdowntimer android-timepicker


【解决方案1】:

这里 hour1 和 min1 是默认选择的对话时间..

void setTimeInterval() {
        Calendar mcurrentTime = Calendar.getInstance();
        int hour1 = mcurrentTime.get(Calendar.HOUR_OF_DAY);
        int minute1 = mcurrentTime.get(Calendar.MINUTE);
        TimePickerDialog mTimePicker;
        mTimePicker = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                // eReminderTime.setText(selectedHour + ":" +
                // selectedMinute);
                hour = selectedHour;
                minute = selectedMinute;
                if (hour > 0 || minute > 0) {
                    sendSettingsTimeInterval();
                }
            }

        }, hour1, minute1, true);// Yes 24 hour time
        mTimePicker.setTitle("Select Time Interval");
        mTimePicker.show();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    相关资源
    最近更新 更多