Ya tengo un DatePicker que aparece cuando el usuario hace clic en el campo EditText
eReminderDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//To show current date in the datepicker
Calendar mcurrentDate = Calendar.getInstance();
int mYear = mcurrentDate.get(Calendar.YEAR);
int mMonth = mcurrentDate.get(Calendar.MONTH);
int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(AddReminder.this, new OnDateSetListener() {
public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
// TODO Auto-generated method stub
/* Your code to get date and time */
selectedmonth = selectedmonth + 1;
eReminderDate.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
}
}, mYear, mMonth, mDay);
mDatePicker.setTitle("Select Date");
mDatePicker.show();
}
});
Intenté hacer un TimePicker de manera similar pero no pude hacerlo funcionar. Este es mi intento de hacerlo funcionar
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(AddReminder.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
eReminderTime.setText( ""selectedHour + ":" + selectedMinute);
}
}, hour, minute);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
¿Es imposible hacerlo de forma similar a como lo hice con DatePicker?
He intentado incluso hacer que aparezca un TimePicker una vez que se hace clic en el campo EditText con este código.
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(TIME_DIALOG_ID);
}
});
Por alguna razón, cuando ingresé eso en Android Studio, se puntuó 'showDialog'.
¿Alguien puede darme consejos sobre dónde me equivoco? ¿O simplemente tendré que usar un DialogFragment personalizado?
android
android-timepicker
Mark O'Sullivan
fuente
fuente
Respuestas:
Le falta una hora
+
intermedia""
y seleccionada, lossetText
métodos solo toman una sola cadena, por lo que debe concatenar todas las partes (las primeras comillas probablemente no sean necesarias).Eso debería corregir su segundo error, no estaba proporcionando el último parámetro. Constructores TimePickerDialog
fuente
¿Por qué no escribir de forma reutilizable?
Crear clase SetTime:
Luego llámalo desde la función onCreate:
fuente
Puede usar el siguiente código en el oyente onclick de edittext
Puede ver el código completo en el ejemplo de selector de tiempo de Android
fuente
Extendí la agradable solución reutilizable de @Sumoanand para admitir tanto el cambio de enfoque como los oyentes de clics al cambiar la hora varias veces. También se actualiza el calendario del selector para recordar la última hora seleccionada + formato HH: mm
Uso de onCreate:
fuente
No sé si esto funcionará para usted, a mí me funciona bien.
Cree un método para el cuadro de diálogo del selector de fecha / hora.
y luego, donde quieras, puedes hacerlo así
Espero que encuentre esto como su solución.
fuente
No ha puesto el último argumento en
TimePickerDialog
.este es el código del
TimePickerclass
. requiere un argumento booleanois24HourView
fuente
fuente
fuente
Para mí, el diálogo aparece más de uno si hago clic en el texto de edición de dpFlightDate más de una vez para el diálogo del temporizador. ¿Cómo puedo evitar que este cuadro de diálogo aparezca solo una vez y si el usuario hace clic en la segunda vez, el cuadro de diálogo no debe volver a aparecer, es decir, si el cuadro de diálogo está en la pantalla?
fuente