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

Composants graphiques Android Discussion :

[Dialog] Définir onCreateDialog objet parent


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut [Dialog] Définir onCreateDialog objet parent
    Salut à tous,

    Je suis en train de développer un composant "EditText" qui inclus une "DatePickerDialog" :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    package com.monappli.utils;
     
    import java.util.Calendar;
    import android.app.Activity;
    import android.app.DatePickerDialog;
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.View;
    import android.widget.EditText;
     
    public class DatePicker extends EditText {
     
    	private int year, month, day;
    	final int DATE_DIALOG_ID = 1;
    	private Context context;
     
        private DatePickerDialog.OnDateSetListener mDateSetListener =
                new DatePickerDialog.OnDateSetListener() {
    				public void onDateSet(android.widget.DatePicker view, int cYear, int cMonthOfYear, int cDayOfMonth) {
                        year = cYear;
                        month = cMonthOfYear;
                        day = cDayOfMonth;
    				}
                };
     
        private View.OnClickListener mOnClickListener = 
                new View.OnClickListener(){
        			public void onClick(View v) {
        				((Activity) context).showDialog(DATE_DIALOG_ID);
        			}
    			};
     
        //Constructeurs
    	public DatePicker(Context cContext) {
    		super(cContext);
    		initialize(context);
    	}
    	public DatePicker(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		initialize(context);
    	}
    	public DatePicker(Context context, AttributeSet attrs, int defStyle) {
    		super(context, attrs, defStyle);
    		initialize(context);
    	}
     
    	public void initialize(Context context){
    		Calendar cal = Calendar.getInstance();
    		this.year = cal.get(Calendar.YEAR);
    		this.month= cal.get(Calendar.MONTH) + 1;
    		this.day  = cal.get(Calendar.DAY_OF_MONTH);
    		this.context = context;
    		this.setFocusableInTouchMode(false);
    		this.setOnClickListener(mOnClickListener);
    	}
     
    	public DatePickerDialog.OnDateSetListener getDateSetListener(){
    		return mDateSetListener;
    	}
     
    	public int getMonth(){ return this.month; }
    	public int getYear(){ return this.year; }
    	public int getDay(){ return this.day; }
     
    	protected DatePickerDialog onCreateDialog(int id) {
    	    switch (id) {
    	    case DATE_DIALOG_ID:
    	        return new DatePickerDialog(context, mDateSetListener, this.year, this.month, this.day);
    	    }
    	    return null;
    	}	
    }
    Tout fonctionne bien mis à part que lorsque je fais appel à "showDialog", il enclenche la méthode "onCreateDialog" de l'activité où est placé mon composant "DatePicker", et non pas de mon objet.

    Ma question : comment faire pour personnaliser la méthode "onCreateDialog" de l'activité, directement à partir de mon composant ?

    Merci pour toute aide.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Ma question : comment faire pour personnaliser la méthode "onCreateDialog" de l'activité, directement à partir de mon composant ?
    En l'appelant, non ? Appeler ton onCreatDialog de ton objet depuis le onCreateDialog de ton Activity.

    Tu manière automatique tu ne pourras pas, le onCreatDialog appartienr à la classe Activity, donc aucun moyen pour toi de le surcharger depuis ta classe DatePicker.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Oui c'est ce qui me semblait. Mon but était de pouvoir faire une classe qui m'évite de saisir le code d'appel dans chaque activité où j'utiliserai un DatePicker.

    Tant pis... sniff.

    Merci quand même pour ces informations

Discussions similaires

  1. [VB.net] appeler un objet "parent"
    Par niouze dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 12/02/2007, 11h06
  2. Réponses: 2
    Dernier message: 01/11/2006, 03h18
  3. passer un objet dérivé a un objet parent
    Par airseb dans le forum C++
    Réponses: 9
    Dernier message: 30/10/2006, 19h11
  4. Réponses: 14
    Dernier message: 24/04/2006, 08h36
  5. Atteindre un objet parent
    Par FloMo dans le forum AWT/Swing
    Réponses: 34
    Dernier message: 28/12/2005, 09h53

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