IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Utiliser un datePicker sur plusieurs champs de texte.


Sujet :

Android

  1. #1
    Membre éprouvé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Points : 919
    Points
    919
    Par défaut Utiliser un datePicker sur plusieurs champs de texte.
    Bonjour, j'ai une activity sur laquelle j'ai deux champs date. J'ai créé un fragment pour le datePicker comme expliqué dans la doc android.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
           @Override
           public Dialog onCreateDialog(Bundle savedInstanceState) {
                 final Calendar c = Calendar.getInstance();
                 int year = c.get(Calendar.YEAR);
                 int month = c.get(Calendar.MONTH);
                 int day = c.get(Calendar.DAY_OF_MONTH);
                
                 return new DatePickerDialog(getActivity(), this, year, month, day);
                
           }
     
           @Override
           public void onDateSet(DatePicker view, int year, int month, int day) {
                 EditText beginDate = (EditText)getActivity().findViewById(R.id.event_begin_date);
                 EditText endingDate = (EditText)getActivity().findViewById(R.id.event_ending_date);
     
                 if("beginDatePicker".equals(view.getTag().toString()) ){
                        beginDate.setText(day + "-" + month + "-" + year);
                 }
                
                 if("endingDatePicker".equals(view.getTag().toString())){
                        endingDate.setText(day + "-" + month + "-" + year);
                 }
                
                
           }
          
    }
    J'essaye d'utiliser le même datePicker pour gérer tout mes champs date. Je ne sais pas si cela est possible. J'essaye pour cela d'utiliser le paramètre view de la méthode DatePicker mais sans succès. Ce paramètre n'est jamais utilisé dans les exemple que je trouve sur le net. Pourtant il doit bien servir à quelque chose. J'ai déjà essayé view.getId() == beginDate.getId() mais cela ne retourne pas le même id.

    Quelqu'un à une solution?

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Ta question est trop large, on sait pas ce que tu souhaite faire réellement. Enfin en tous cas moi j'ai pas compris

    Tu souhaite avoir deux choix de date dans ton dialog ?


    Une ligne pour date début et une ligne en dessous pour la date fin ?

  3. #3
    Membre éprouvé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Points : 919
    Points
    919
    Par défaut
    Ce que je veux c'est de ne pas avoir à réécrire un Fragment pour chaque champs date de mon appli. En gros je ne veux pas de BeginDatePickerFragment et EndingDatePickerFragment.

    Mais un seul Fragment qui gère tout les champs date avec la méthode onDateSet qui filtre quel champ est actuellement sélectionné et le remplisse de la valeur choisie dans le datePicker.

    Je sais pas si je suis assez clair

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Pourquoi tu ne crée pas une variable tag en private et tu fait tes getters et setters.

    Ensuite suivant la vue appelé tu pourra set ton edit text.

    DatePickerFragment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    private boolean isStartDate;
     
    public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
           @Override
           public Dialog onCreateDialog(Bundle savedInstanceState) {
                 final Calendar c = Calendar.getInstance();
                 int year = c.get(Calendar.YEAR);
                 int month = c.get(Calendar.MONTH);
                 int day = c.get(Calendar.DAY_OF_MONTH);
     
                 return new DatePickerDialog(getActivity(), this, year, month, day);
     
           }
     
           @Override
           public void onDateSet(DatePicker view, int year, int month, int day) {
                 EditText beginDate = (EditText)getActivity().findViewById(R.id.event_begin_date);
                 EditText endingDate = (EditText)getActivity().findViewById(R.id.event_ending_date);
     
                 if(isStartDate) )
                 {
                        beginDate.setText(day + "-" + month + "-" + year);
                 }else {
                        endingDate.setText(day + "-" + month + "-" + year);
                 }
     
           }
     
    }
     
    public void setIsStartDate(boolean isStartDate)
    {
        this.isStartDate = isStartDate;
    }
     
    public String getIsStartDate()
    {
        return this.isStartDate;
    }
    Ton appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.setIsStartDate(true);
    newFragment.show(getSupportFragmentManager(), "datePicker");
     
    Tu peut optimiser le truc en plaçant une enum

  5. #5
    Membre éprouvé Avatar de scandinave
    Homme Profil pro
    Développeur Java, NodeJs/Angular
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java, NodeJs/Angular

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Points : 919
    Points
    919
    Par défaut
    Merci beaucoup, je n'avait pas pensé à cette solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [UI] DatePicker sur plusieurs champs
    Par Devilju69 dans le forum jQuery
    Réponses: 2
    Dernier message: 28/03/2014, 14h09
  2. Réponses: 1
    Dernier message: 26/08/2011, 15h24
  3. Autocompletion sur plusieur champs texte
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/07/2006, 15h20
  4. Réponses: 2
    Dernier message: 30/11/2004, 09h42
  5. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo