Date Picker :
https://stackoverflow.com/questions/19529500/how-to-implement-android-minutes-seconds-picker
https://github.com/IvanKovac/TimePickerWithSeconds
Dans un écran de préférence :
https://stackoverflow.com/questions/5533078/timepicker-in-preferencescreen
https://stackoverflow.com/questions/20758986/android-preferenceactivity-dialog-with-number-picker
Valider une date (vérifier si elle existe) :
@RequiresApi(api = Build.VERSION_CODES.N)
public boolean isThisDateValid(String dateToValidate, String dateFormat) {
if (dateToValidate == null) {
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
sdf.setLenient(false);
try {
//if not valid, it will throw ParseException
Date date = sdf.parse(dateToValidate);
return true;
//System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
return false;
} catch (java.text.ParseException e) {
e.printStackTrace();
return false;
}
}
Date plus ou moins nombre de jours :
nbJour++;
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, nbJour);
pYear = calendar.get(Calendar.YEAR);
pMonth = calendar.get(Calendar.MONTH) + 1;
pDay = calendar.get(Calendar.DAY_OF_MONTH);
nJour = pDay;
nMois = pMonth;
nAn = pYear;
Date Picker :
Utile pour demander la saisie d’une date <=> affiche une fenêtre de dialogue permettant la saisie.
1°) Définir une fonction de « callback » qui sera appelée lors de la confirmation de la saisie :
/** Callback received when the user "picks" a date in the dialog */
private DatePickerDialog.OnDateSetListener pDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
pYear = year;
pMonth = monthOfYear+1; //--0=Janvier !
pDay = dayOfMonth;
//-- traitement des valeurs reçues...
}
};
2°) Définir la fenêtre de dialogue de saisie de date :
/** Create a new dialog for date picker */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,
pDateSetListener, //-- Function appelée si click sur ok
pYear, pMonth, pDay); //-- valeurs par défaut
}
return null;
}
3°) A l’endroit du programme choisi, affichage de la fenêtre de saisie de date :
onCreateDialog(DATE_DIALOG_ID).show();
Attention, la variable DATE_DIALOG_ID doit être déclarée en static final int DATE_DIALOG_ID = 0;
Référence :
https://www.tutlane.com/tutorial/android/android-datepicker-with-examples
4°) Remarque : la date du jour peut être initialisée de la manière suivante :
/** Get the current date */
final Calendar cal = Calendar.getInstance();
pYear = cal.get(Calendar.YEAR);
pMonth = cal.get(Calendar.MONTH);
pDay = cal.get(Calendar.DAY_OF_MONTH);
Calendrier :
http://www.edumobile.org/android/android-development/calenderview-example/
Afin d’afficher un calendrier il est possible d’utiliser le widget Calendar disponible sous Android > à 11
1°) Définissez le layout contenant le widget :
Les propriétés du CalendarView sont les suivantes :
android:showWeekNumber
android:firstDayOfWeek
android:minDate
android:maxDate
android:shownWeekCount
android:selectedWeekBackgroundColor
android:focusedMonthDateColor
android:unfocusedMonthDateColor
android:weekNumberColor
android:weekSeparatorLineColor
android:selectedDateVerticalBar
android:weekDayTextAppearance
android:dateTextAppearance
2°) Dans l’activité, appel de l’écran avec paramétrage du widget et gestion du click sur la date :
package com.andrologiciels.androcalendar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.CalendarView;
import android.widget.CalendarView.OnDateChangeListener;
import android.widget.Toast;
public class MainActivity extends Activity {
CalendarView calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendar = (CalendarView) findViewById(R.id.calendar); //-- Affichage de la vue
calendar.setFirstDayOfWeek(2); // -- Définition du Lundi comme 1er jour
calendar.setOnDateChangeListener // -- Si appui sur une date
(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year,
int month, int dayOfMonth) {
Toast.makeText(getApplicationContext(),
dayOfMonth + "/" + month + "/" + year,
Toast.LENGTH_LONG).show();
}
});
}
}
Attention, pas de possibilité de faire figurer des événements !
Pour un calendrier plus élaboré, utilisez CalDroid l’activité fournie CaldroidSampleActivity détaille les possibilités de la librairie, notamment l’utilisation d’une fenêtre de dialogue.
Afin d’utiliser CalDroid dans Eclipse :
1°) Importez le projet https://github.com/roomorama/Caldroid/releases/tag/eclipse_project importer le dossier library dans eclipse
2°) Cliquez sur properties/android et vérifier que Is Library est bien coché
3°) Importez CaldroidSampleActivity et properties/Android Add ..\library
Votre commentaire