Exemple de sélecteur de date Android

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.

android datepicker demo1

2. Cliquez sur le bouton «Modifier la date», il affichera un composant de sélection de date dans une boîte de dialogue viaDatePickerDialog.

android datepicker demo2

3. Le "sélecteur de date" et la "visualisation de texte" sont mis à jour avec la date sélectionnée.

android datepicker demo3

Télécharger le code source

Téléchargez-le -Android-DatePicker-Example.zip (16 Ko)