2015-03-02 1 views
0

Я новичок в Android. Я пытаюсь работать на TimePickerDialog. Я реализовал его, и он работает нормально, но единственная проблема заключается в том, что он отображает предыдущее время. Есть ли способ показать только текущее и будущее время в TimepickerDialog? Я сделал следующее кодирование, пожалуйста, направляйте меня.Как установить TimePickerDialog в текущее время и показать только текущее и будущее время, а не предыдущее время?

TimePickerDialog mTimePicker; 

     mTimePicker = new TimePickerDialog(Take_Away.this, 
       new TimePickerDialog.OnTimeSetListener() { 
        @SuppressLint("SimpleDateFormat") 
        @Override 
        public void onTimeSet(TimePicker timePicker, 
          int selectedHour, int selectedMinute) { 

         Calendar time = Calendar.getInstance(); 

         time.set(Calendar.HOUR_OF_DAY, selectedHour); 

         time.set(Calendar.MINUTE, selectedMinute); 
         SimpleDateFormat format = new SimpleDateFormat(
           "hh:mm a"); 
         et_time.setText(format.format(time.getTime())); 
         hour = selectedHour; 
         minute = selectedMinute; 
        } 
       }, hour, minute, false);// Yes 24 hour time 
     mTimePicker.setTitle("Select Time"); 
     mTimePicker.show(); 
+0

Что именно вы хотите, если щелкнуть по часовой стрелке ??? – Apurva

+0

timepicker должен показывать текущее время, и следующие будущие времена должны быть только видимыми. Я хочу, чтобы предыдущие времена отображались в диалоговом окне –

+0

@ Используется функция setMinDate(). Он устанавливает минимальную дату. FYI ссылается на мой ответ. Надеюсь, вам это поможет –

ответ

0

Попробуйте, как показано ниже. Надеюсь, что это поможет вам

private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() { 

     // when dialog box is closed, below method will be called. 
     @Override 
     public void onDateSet(DatePicker view, int selectedYear, 
       int selectedMonth, int selectedDay) { 

      year = selectedYear; 
      month = selectedMonth; 
      day = selectedDay; 

      // Show selected date 
      editOutputDate.setText(new StringBuilder().append(month + 1) 
        .append("-").append(day).append("-").append(year) 
        .append(" ")); 

     }` 
    }; 

private int year; 
private int month; 
private int day; 
+0

Вопрос о дате не раз – Apurva

1

Pass на текущую дату в час и время значения, когда вы строите TimePickerDialog.

// Get current system time 
Calendar currentTime = Calendar.getInstance(); 

mTimePicker = new TimePickerDialog(Take_Away.this, 
     new TimePickerDialog.OnTimeSetListener() { 
      @SuppressLint("SimpleDateFormat") 
      @Override 
      public void onTimeSet(TimePicker timePicker, 
        int selectedHour, int selectedMinute) { 

       Calendar time = Calendar.getInstance(); 

       time.set(Calendar.HOUR_OF_DAY, selectedHour); 

       time.set(Calendar.MINUTE, selectedMinute); 
       SimpleDateFormat format = new SimpleDateFormat(
         "hh:mm a"); 
       et_time.setText(format.format(time.getTime())); 
       hour = selectedHour; 
       minute = selectedMinute; 
      } 
     }, 

     currentTime.get(Calendar.HOUR_OF_DAY), // Current hour value 
     currentTime.get(Calendar.MINUTE), // Current minute value 
     DateFormat.is24HourFormat()); // Check 24 Hour or AM/PM format 

mTimePicker.setTitle("Select Time"); 
mTimePicker.show(); 

Обратите внимание на использование DateFormat.is24HourFormat(). Это касается системного предпочтения вашей системы в отношении 24-часового формата AM/PM.

+0

пробовал ... но это не помогает –

+0

Во сколько вы видите, когда открывается сборщик времени? –

+0

Текущее время: 12:52 PM ... Тогда я могу видеть 11:52 наверху и 1:54 ниже –

1

Используйте функцию setMinDate(). Он устанавливает минимальную дату в миллисекундах с 1 января 1970 года 00:00:00 в часовом поясе getDefault(). Установите минимальную дату на сегодняшнюю дату, чтобы пользователь не смог пройти мимо нее. Что-то вроде следующего в onCreateDialog:

final Calendar c = Calendar.getInstance(); 
int year = c.get(Calendar.YEAR); 
int month = c.get(Calendar.MONTH); 
int day = c.get(Calendar.DAY_OF_MONTH); 

DatePickerDialog d = new DatePickerDialog(getActivity(), listener, year, month, day); 
DatePicker dp = d.getDatePicker(); 
dp.setMinDate(c.getTimeInMillis()); 
return d;