TimePickerDialog: Al hacer clic en el botón "Cancelar" se llama al método onTimeSet ()

Utilizo TimePickerDialog con método onTimeSet() . He añadido un botón de cancel con onClickListener .
Mi problema es que cuando hago clic en el botón cancel , se llama al método onTimeSet (). ¿Por qué? Cualquier forma de resolver este problema?

 // Create timePicker and set listener timeListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { }; timePicker = new TimePickerDialog(RS_CreateTripActivity.this, timeListener, hour, min, false); timePicker.setCanceledOnTouchOutside(false); timePicker.setCancelable(false); // Set negative button click listener timePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { datePicker.dismiss(); } }); 

Intenté fijar el botón positive con onClickListener pero en ese caso no pude conseguir el tiempo seleccionado por el usuario. Si alguien me dice cómo obtener tiempo dentro de onClickListener , también resolvería mi problema.

Hay un problema con DatePickerDialog y TimePickerDialog (problema # 34833). Usted podría utilizar un contador como una solución para deshacerse de este problema. Pls. Consulte: Selector de fecha con opción de cancelación en android

Tienes que usarte de esta manera.

 private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mHour = hourOfDay; mMinute = minute; time = ""+mHour+":"+mMinute; } }; @Override protected Dialog onCreateDialog(int id) { switch (id) { case TIME_DIALOG_ID: TimePickerDialog myTime = new TimePickerDialog(this,mTimeSetListener, h, m, false); myTime(new DialogInterface.OnCancelListener(){ @Override public void onCancel(DialogInterface arg0) { //your cancel task. } );//For cancel button return myTime; //Return the dialog break; return null; } 

Es un trabajo como el encanto.

  • Android TimePickerDialog color del diseño del material
  • DateFormat.is24HourFormat devuelve siempre el mismo resultado
  • Cómo cambiar el estilo de selector de fecha en android?
  • Cuadro de diálogo TimePicker al hacer clic en EditarTexto
  • ScrollView luchando con scroll de TimePicker, Timepicker no desplazándose como resultado
  • Cómo crear un nuevo cuadro de diálogo "circle" datepicker android
  • Widget del selector de fecha y hora de la aplicación Buzón de correo
  • ¿Cómo debo usar / no usar métodos obsoletos en Android
  • Intervalo de tiempo límite en el selector de tiempo
  • Android - ¿Cómo cambiar programaticamente el modo timepicker?
  • Widget de Android API 21 - TimePicker
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.