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 :

Stockage des listeners, comment ?


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Points : 69
    Points
    69
    Par défaut Stockage des listeners, comment ?
    Bonjour

    J'implémente une classe A qui émet des événements à travers une interface
    implémentée par les instances qui écoutent.
    Je dois stocker dans chaque instance de A la liste des instances qui écoutent.

    Je pourrais le faire dans une liste mais comme ci-dessous n'existe-t-il pas déjà quelque chose
    prévu par le framework qui éviterait cette opération et qui par la même
    occasion pourrait gérer automatiquement les désabonnements lors
    de la destruction des instances ? (un peu comme en delphi pour ceux
    qui connaissent.)

    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
    // Ceci est du code d'illustration qui ne doit probablement pas compiler...
     
    Interface MyListener {
      void valueChanged(int newValue);
    }
     
    public class MaClasse {
     
      private List<MyListener> listeners;
     
      public void addListener(MyListener listener){
        listeners.add(listener);
      }
     
      public void removeListener(MyListener listener){
        listeners.remove(listener);
      }
    }
     
    public class Ecouteur implements MyListener{
      private MaClasse lInstance= getLInstance();
     
      Ecouteur(){
        lInstance.addListener(this);
      }
     
      ~Ecouteur(){
        lInstance.removeListener(this);
      }
     
     
      void valueChanged(int newValue){
         // qq chose
      }
     
      MaClasse getLInstance(){
        // qq chose
      }
    }

    Merci
    Henri

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Si ta classe a la possibilité d'étendre java.util.Observable, elle aura du coup une implémentation prédéfinie du design pattern Observateur. Sinon, pas le choix, c'est à toi d'implémenter le pattern comme dans ton exemple.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2015, 09h39
  2. Réponses: 1
    Dernier message: 22/08/2009, 06h02
  3. Réponses: 10
    Dernier message: 28/03/2006, 15h10
  4. [MySQL] Problème par rapport au tutoriel sur le stockage des images en base
    Par dark_vidor dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/09/2005, 10h37
  5. [Preferences] Stockage des options
    Par Yan83 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 03/05/2004, 10h38

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