Cómo puedo establecer un intervalo de minutos en DialogFragment

Estoy tratando de establecer un intervalo de 10 minutos en el android DialogFragment (sugerido por google), pero realmente no puedo encontrar una manera de hacerlo.

Aquí está la clase de fragmentos que muestra el diálogo:

 public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current time as the default values for the picker final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); // Create a new instance of TimePickerDialog and return it return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); } public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String realMinute= ""; switch (minute) { case 1: realMinute = "01"; break; case 2: realMinute = "02"; break; case 3: realMinute = "03"; break; case 4: realMinute = "04"; break; case 5: realMinute = "05"; break; case 6: realMinute = "06"; break; case 7: realMinute = "07"; break; case 8: realMinute = "08"; break; case 9: realMinute = "09"; break; default: realMinute = String.valueOf(minute); break; } final String selectedDate = String.valueOf(hourOfDay) + ":" + realMinute; EditText selectedTimeTxt = (EditText) getActivity().findViewById(R.id.selectedTime); selectedTimeTxt.setText(selectedDate); } 

Todo funciona como se esperaba, pero lo que necesito es permitir al usuario escoger sólo intervalos de 10 minutos – por ejemplo 1:10, 1:20, 1:30, 1:40 etc …

¿Es posible modificarlo, o extenderlo de alguna manera para satisfacer mis necesidades? Sé que me falta un punto básico aquí, pero como un novato no soy capaz de detectarlo.

EDITAR

Aquí mis opiniones son:

Introduzca aquí la descripción de la imagen

Puede establecer sus propios valores en el segundo selector de números (el selector de números de minutos), con una llamada de setDisplayedValues . Sin embargo, primero debe buscar la vista de NumberPicker .

Android Device Monitor, tiene una buena característica de la captura de la pantalla del dispositivo y las vistas separadas, por lo que puede encontrar el ID (o una ruta de acceso) a su vista deseada:

Introduzca aquí la descripción de la imagen

Dado que su nueva matriz de valores tiene 6 valores (0 … 5), tendrá que convertir los minutos actuales en decenas , por lo que no saldrá de rango.

He aquí un ejemplo completo:

 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); // Convert current minutes to tens // 55 = 50, 56 = 00 int minute = c.get(Calendar.MINUTE) / 10; minute = (minute > 5) ? 0 : minute; // Create a new instance of TimePickerDialog and return it final TimePickerDialog tpd = new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); tpd.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { int tpLayoutId = getResources().getIdentifier("timePickerLayout", "id", "android"); ViewGroup tpLayout = (ViewGroup) tpd.findViewById(tpLayoutId); ViewGroup layout = (ViewGroup) tpLayout.getChildAt(0); // Customize minute NumberPicker NumberPicker minutePicker = (NumberPicker) layout.getChildAt(2); minutePicker.setDisplayedValues(new String[]{"00", "10", "20", "30", "40", "50"}); minutePicker.setMinValue(0); minutePicker.setMaxValue(5); } }); return tpd; } public void onTimeSet(TimePicker view, int hourOfDay, int minute) { minute = minute * 10; Toast.makeText(getActivity(), "Selected minute: " + minute, Toast.LENGTH_LONG).show(); } 

Editar:

Cuando se utiliza el tema de AppCompat, el cuadro de diálogo mostrará un deslizador circular, que es uncustomizable. Sin embargo, puede decirle al diálogo que utilice un tema más reciente (que no será un problema porque su minSdk es 15):

 final TimePickerDialog tpd = new TimePickerDialog(getActivity(), android.R.style.Theme_Holo_Light_Dialog, this, hour, minute, DateFormat.is24HourFormat(getActivity())); 
  • Manejo de errores de actualización
  • ¿Hay un reemplazo para el RequestInterceptor en Retrofit 2?
  • Dentro del código de Android, ¿qué sugiere las características que un programa espera de una variable?
  • Twitter4j: Obtener la lista de respuestas para un determinado tweet
  • OnItemClickListener () no funciona con el adaptador de lista
  • Android MediaPlayer: Transmitir y escribir al archivo al mismo tiempo.
  • Android SimpleDateFormat no funciona
  • ¿Cuáles son los posibles problemas de rendimiento en el uso de python over java para el desarrollo de aplicaciones para Android?
  • Robotium. En la serie de pruebas cada prueba siguiente es afectada por la prueba anterior
  • Analiza el formato de fecha de JSON en String usando GSON en Android
  • Biblioteca Java usando selectores css para analizar XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.