Exemple de sélecteur de date Android
Sous Android, vous pouvez utiliser la classe «http://developer.android.com/reference/android/widget/DatePicker.html[android.widget.DatePicker]» pour afficher un composant de sélecteur de date pour sélectionner le jour, le mois et l'année dans un interface utilisateur prédéfinie.
Dans ce didacticiel, nous vous montrons comment rendre le composant de sélection de date dans la page actuelle viaandroid.widget.DatePicker, et également dans la boîte de dialogue viaandroid.app.DatePickerDialog. De plus, nous vous montrons également comment définir une date dans le composant sélecteur de date.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Sélecteur de date
Ouvrez le fichier «res/layout/main.xml», ajoutez un sélecteur de date, une étiquette et un bouton pour la démonstration.
Fichier: res / layout / main.xml
P.S The “DatePickerDialog
” is declare in code, not XML.
2. Code Code
Lisez le commentaire du code, il devrait être explicite.
Fichier: MyAndroidAppActivity.java
package com.example.android; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class MyAndroidAppActivity extends Activity { private TextView tvDisplayDate; private DatePicker dpResult; private Button btnChangeDate; private int year; private int month; private int day; static final int DATE_DIALOG_ID = 999; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setCurrentDateOnView(); addListenerOnButton(); } // display current date public void setCurrentDateOnView() { tvDisplayDate = (TextView) findViewById(R.id.tvDate); dpResult = (DatePicker) findViewById(R.id.dpResult); final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); // set current date into textview tvDisplayDate.setText(new StringBuilder() // Month is 0 based, just add 1 .append(month + 1).append("-").append(day).append("-") .append(year).append(" ")); // set current date into datepicker dpResult.init(year, month, day, null); } public void addListenerOnButton() { btnChangeDate = (Button) findViewById(R.id.btnChangeDate); btnChangeDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: // set date picker as current date return new DatePickerDialog(this, datePickerListener, year, month,day); } return null; } private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { // when dialog box is closed, below method will be called. public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = selectedDay; // set selected date into textview tvDisplayDate.setText(new StringBuilder().append(month + 1) .append("-").append(day).append("-").append(year) .append(" ")); // set selected date into datepicker also dpResult.init(year, month, day, null); } }; }
P.S The “DatePickerDialog” example above, is referenced from Google Android date picker example, avec quelques modifications mineures.
3. Demo
Exécutez l'application.
1. Le résultat, le "sélecteur de date" et la "visualisation de texte" sont définis sur la date actuelle.
2. Cliquez sur le bouton «Modifier la date», il affichera un composant de sélection de date dans une boîte de dialogue viaDatePickerDialog
.
3. Le "sélecteur de date" et la "visualisation de texte" sont mis à jour avec la date sélectionnée.
Télécharger le code source
Téléchargez-le -Android-DatePicker-Example.zip (16 Ko)