J'utilise un sélecteur de date et un sélecteur d'heure dans ma demande. Je veux définir la date et l'heure de chargement de la page. Est-ce possible? Comment?
J'ai résolu un problème similaire à moi comme suit
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int min = cal.get(Calendar.MINUTE);
datePicker.updateDate(year, month, day);
timePicker.setCurrentHour(hour);
timePicker.setCurrentMinute(min);
JodaTime est une bibliothèque extrêmement populaire et utile pour gérer les dates et heures en Java. Si vous ne l'utilisez pas, je vous recommande fortement d'y jeter un œil.
Voici un exemple simple de la façon dont j'ai défini un DatePicker
et TimePicker
à partir d'un objet DateTime
, qui pourrait être la date actuelle ou toute date du passé ou du futur (l'attribut dans ce cas s'appelle inspected_at
):
DatePicker datePicker = (DatePicker) findViewById(R.id.inspected_at_date);
TimePicker timePicker = (TimePicker) findViewById(R.id.inspected_at_time);
DateTime inspected_at = DateTime.now() // Typically pulled from DB.
int year = inspected_at.getYear() ;
int month = inspected_at.getMonthOfYear() - 1; // Need to subtract 1 here.
int day = inspected_at.getDayOfMonth();
int hour = inspected_at.getHourOfDay();
int minutes = inspected_at.getMinuteOfHour();
datePicker.updateDate(year, month, day); // Set date.
timePicker.setCurrentHour(hour); // Set time.
timePicker.setCurrentMinute(minutes);
J'espère que ça t'as aidé.
JP
Il existe une méthode updateDate
pour le DatePicker.
Voici ce que j'utilise dans l'une de mes applications, sans utiliser de boîte de dialogue:
//set datePicker to position
String date_saved = project_row.getString(
project_row.getColumnIndex("project_startdate"));
int day = Integer.parseInt(date_saved.substring(0,2));
int year = Integer.parseInt(date_saved.substring(5,9));
String month = date_saved.substring(2,5);
int month_code = getMonthInt(month);
project_startdate_data = (DatePicker) findViewById(R.id.project_startdate_data);
project_startdate_data.updateDate(year, month_code, day);
où project_row
est mon curseur et la date est enregistrée dans la colonne project_startdate
comme 22MAY2012
et vous en avez besoin:
private int getMonthInt(String month) {
if (month.equalsIgnoreCase("JAN")) return 0;
if (month.equalsIgnoreCase("FEB")) return 1;
if (month.equalsIgnoreCase("MAR")) return 2;
if (month.equalsIgnoreCase("APR")) return 3;
if (month.equalsIgnoreCase("MAY")) return 4;
if (month.equalsIgnoreCase("JUN")) return 5;
if (month.equalsIgnoreCase("JUL")) return 6;
if (month.equalsIgnoreCase("AUG")) return 7;
if (month.equalsIgnoreCase("SEP")) return 8;
if (month.equalsIgnoreCase("OCT")) return 9;
if (month.equalsIgnoreCase("NOV")) return 10;
if (month.equalsIgnoreCase("DEC")) return 11;
//return -1 if month code not found
return -1;
}
Cochez ceci Comment utiliser la boîte de dialogue du sélecteur de date . et utiliser la fonction de mise à jour dans onCreate (); si par page se charge, vous voulez dire que l'activité commence ... j'espère que cela vous aidera.
Vérifiez ceci .
Utilisez la fonction showDialog(TIME_DIALOG_ID);
dans onCreate();