2016-04-11 8 views
1

Как получить выбранное значение времени без отображения диалогового окна timePicker?Получить значение timePicker без отображения диалогового окна TimePicker

Изображение ниже - это макет конструкции будильника. Когда кнопка нажата, я хочу, чтобы она отображала выбранное значение вместо всплывающего диалогового окна «Время».

enter image description here

alarm.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       showDialog(TIME_DIALOG_ID); 
      } 
     }); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case TIME_DIALOG_ID: 

       // set time picker as current time 
       return new TimePickerDialog(this, timePickerListener, hour, minute, 
         false); 
     } 
     return null; 
    } 

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 

     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
      // TODO Auto-generated method stub 
      hour = hourOfDay; 
      minute = minutes; 
      updateTime(hour,minute); 
     } 
    }; 

    // Used to convert 24hr format to 12hr format with AM/PM values 
    private void updateTime(int hours, int mins) { 

     String timeSet = ""; 
     if (hours > 12) { 
      hours -= 12; 
      timeSet = "PM"; 
     } else if (hours == 0) { 
      hours += 12; 
      timeSet = "AM"; 
     } else if (hours == 12) 
      timeSet = "PM"; 
     else 
      timeSet = "AM"; 


     String minutes = ""; 
     if (mins < 10) 
      minutes = "0" + mins; 
     else 
      minutes = String.valueOf(mins); 

     // Append in a StringBuilder 
     String aTime = new StringBuilder().append(hours).append(':') 
       .append(minutes).append(" ").append(timeSet).toString(); 

     Toast.makeText(getApplicationContext(),aTime,Toast.LENGTH_LONG).show(); 
    } 
} 

Где я должен изменить в кнопке мыши? Благодарю.

ответ

0

Внутри нажатия кнопки, удалите

showDialog(TIME_DIALOG_ID); и заменить

int hour = alarmTimePicker.getCurrentHour(); 
int min = alarmTimePicker.getCurrentMinute(); 
updateTime(hour,min); 

alarmTimePicker является следовать timePicker имя, где вы используете для инициализации timePicker.

Например:

TimePicker alarmTimePicker = (TimePicker) findViewById(R.id.timePicker); 

Удалить код ниже, так как диалог не требуется.

@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case TIME_DIALOG_ID: 

       // set time picker as current time 
       return new TimePickerDialog(this, timePickerListener, hour, minute, 
         false); 
     } 
     return null; 
    } 

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 

     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
      // TODO Auto-generated method stub 
      hour = hourOfDay; 
      minute = minutes; 
      updateTime(hour,minute); 
     } 
    }; 
Смежные вопросы