Android: Establecer el tiempo en el selector de tiempo con el tiempo mostrado en la vista de texto

En mi aplicación, estoy mostrando el tiempo en la vista de texto como 07:00 PM. Al hacer clic en la vista de texto, aparece un cuadro de diálogo de selección de tiempo. En ese selector de tiempo, tengo que mostrar exactamente el mismo tiempo que lo que aparece en textview. Pero, no estoy consiguiendo cómo hacer eso.

CÓDIGO

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a"); //int hr = 0; Date date = null; try { date = sdf.parse(resDateArray[3]); } catch (ParseException e) { e.printStackTrace(); } final Calendar calendar = Calendar.getInstance(); calendar.setTime(date); //tp is reference variable for time picker tp.setCurrentHour(calendar.get(Calendar.HOUR)); tp.setCurrentMinute(calendar.get(Calendar.MINUTE)); }//else 

4 Solutions collect form web for “Android: Establecer el tiempo en el selector de tiempo con el tiempo mostrado en la vista de texto”

Debe utilizar un SimpleDateFormat para obtener un objeto Date de su String . Entonces simplemente llame

 picker.setCurrentHour(date.getHours()) 

y

 picker.setCurrentMinute(date.getMinutes()) 

Dado que el objeto Date está obsoleto, debe utilizar un Calendar lugar de hacerlo. Puede instanciar un Calendar esa manera:

 Calendar c = Calendar.getInstance(); c.setTime(date); picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); picker.setCurrentMinute(c.get(Calendat.MINUTE)); 

Editar: el código completo

  SimpleDateFormat sdf = new SimpleDateFormat("hh:ss"); Date date = null; try { date = sdf.parse("07:00"); } catch (ParseException e) { } Calendar c = Calendar.getInstance(); c.setTime(date); TimePicker picker = new TimePicker(getApplicationContext()); picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); picker.setCurrentMinute(c.get(Calendar.MINUTE)); 

Si alguien utiliza el siguiente formato que es sin usar el widget timepicker use este ..

 mStartTime.setOnClickListener(new OnClickListener() { public void onClick(View v) { new TimePickerDialog(AddAppointmentActivity.this, onStartTimeListener, calendar .get(Calendar.HOUR), calendar.get(Calendar.MINUTE), false).show(); } }); TimePickerDialog.OnTimeSetListener onStartTimeListener = new OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String AM_PM; int am_pm; mStartTime.setText(hourOfDay + " : " + minute + " " + AM_PM); calendar.set(Calendar.HOUR, hourOfDay); calendar.set(Calendar.MINUTE, minute); } }; 

He creado esta función auxiliar para obtener tiempo

  public static void showTime(final Context context, final TextView textView) { final Calendar myCalendar = Calendar.getInstance(); TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String am_pm = ""; myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); myCalendar.set(Calendar.MINUTE, minute); if (myCalendar.get(Calendar.AM_PM) == Calendar.AM) am_pm = "AM"; else if (myCalendar.get(Calendar.AM_PM) == Calendar.PM) am_pm = "PM"; String strHrsToShow = (myCalendar.get(Calendar.HOUR) == 0) ? "12" : myCalendar.get(Calendar.HOUR) + ""; //UIHelper.showLongToastInCenter(context, strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); textView.setText(strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); } }; new TimePickerDialog(context, mTimeSetListener, myCalendar.get(Calendar.HOUR), myCalendar.get(Calendar.MINUTE), false).show(); } 

Y cómo conseguir la hora actual en formato requerido, utilizo código siguiente. // PARAM Fecha es la fecha de tiempo que desea formatear // PARAM currentFormat of date // PARAM requiredFormat of date

  public static String getFormattedDate(String date, String currentFormate, String requiredFormate) { //SimpleDateFormat formatActual = new SimpleDateFormat("yyyy - MM - dd"); if (date != null) { SimpleDateFormat formatActual = new SimpleDateFormat(currentFormate); Date dateA = null; try { dateA = formatActual.parse(date); System.out.println(dateA); } catch (ParseException e) { e.printStackTrace(); } //SimpleDateFormat formatter = new SimpleDateFormat("dd MMM, yyyy"); SimpleDateFormat formatter = new SimpleDateFormat(requiredFormate); String format = formatter.format(dateA); System.out.println(format); return format; } else { return ""; } } 

El uso de getFormattedDate es:

  String date = getFormattedDate(dateYouWantToFormate,"hh:mm a","hh:mm"); 

Para AM / PM tienes que implementar una lógica para eso y eso es como a continuación .. para que puedas obtener la salida como mencionaste … solo prueba debajo del código …

 int hr=tp.getCurrentHour(); String a="AM"; if(hr>=12){ hr=hr-12; a="PM"; } String tm=hr+":"+tp.getCurrentMinute()+" "+a; Toast.makeText(MainActivity.this, tm, 500).show(); 
  • Obtener el valor del selector de fecha y hora a partir de un solo fragmento de diálogo y establecerlo en EditText
  • TimePickerDialog y AM o PM
  • ¿Cómo implementar android Minutos-Segundos selector?
  • Cambiar el color de texto de Time Picker
  • ¿Cómo puedo agregar un nuevo botón en el widget del selector de fechas en android?
  • Las entradas de AppCompatSpinner no abren TimePickerDialog al seleccionarla por segunda vez. Por favor ver detalles
  • ¿Cómo se utilizan los skins personalizados de Datepicker y Timepicker?
  • Android: enfoque en elementos TimePicker
  • ¿Cómo implementar el cordova-plugin-datepicker para Android?
  • Excepción de puntero nulo de TimePicker al pulsar los botones más o menos
  • Android - Nuevo estilo de calendario DatePicker y TimePicker
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.