Date et calendrier

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;

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 :

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:orientation="vertical"  
   android:paddingBottom="@dimen/activity_vertical_margin"  
   android:paddingLeft="@dimen/activity_horizontal_margin"  
   android:paddingRight="@dimen/activity_horizontal_margin"  
   android:paddingTop="@dimen/activity_vertical_margin" >  
   <CalendarView  
     android:id="@+id/calendar"  
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     android:selectedWeekBackgroundColor="@color/transparent"  //-- Code #00000000
     android:weekNumberColor="@color/orange" />  
 </LinearLayout>  

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

 

 

 

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Articles récents
Commentaires récents
fatima sur Bienvenue !
AdminDroid sur Bienvenue !
fatima sur Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :