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 :

Passer une instance d'objet à une nouvelle activité


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Points : 39
    Points
    39
    Par défaut Passer une instance d'objet à une nouvelle activité
    Bonjour

    Voici le principe de ce que je désire faire :
    L'activité principale instancie un BluetoothSocket, lit de l'information par
    ce socket et en fonction de l'information lue, lance une activité
    ou une autre en lui passant le BluetoothSocket afin que celle ci puisse interagir
    avec.
    Je précise que le socket ne peut-être un singleton (l'application peut en
    utiliser plusieurs en simultané)

    Mon problème réside dans "en lui passant le BluetoothSocket". Je crois avoir compris
    que cela se faisait via l'utilisation de Bundles mais je ne suis pas arrivé à quelque
    chose de fonctionnel.

    QQun a-t-il sous le coude une solution ou un exemple qq part sur le web ?

    Merci
    Henri

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Le fait d'en avoir plusieurs n'empêche pas l'utilisation d'un singleton, il est juste indirect... Par exemple en passant par un 'manager' genre:

    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
     
    class SocketManager
    {
         public static final int INVALID_SOCKET = -1;
     
         int curId = 0;
         Hashtable<Integer,BluetoothSocket>  sockets = new Hashtable<Integer,BlutoothSocket>();
     
         SocketManager() { }
     
     
         private static SocketManager _instance = null;
         public static synchronized SocketManager getInstance()
         {
              if (_instance == null)
                  _instance = new SocketManager();
             return _instance;
          }
     
     
         public BluetoothSocket getSocket(int socketId)
         {
             return (socketId == SocketManager.INVALID_SOCKET) ? null : this.sockets.get(Integer.valueOf(socketId));
         }
     
         public synchronized void closeSocket(int socketId)
         {
             ...
             this.sockets.remove(Integer.valueOf(socketId));
         }
     
         public synchronized Integer openSocket()
         {
             ...
             Integer ret = Integer.valueOf(++this.curId);
             this.sockets.put(ret,socket);
             return ret;
         }
    }
    Dans les activités:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      int socketId = ...;
      Intent intent = new Intent(this,...);
      intent.putExtra("BTSOCKET",socketId);
      startActivity(intent);
     
     
      et bien sur:
     
      Intent intent = getIntent();
      int socketId = intent.getIntExtra("BTSOCKET",SocketManager.INVALID_SOCKET);
      SocketManager.getInstance().getSocket(socketId);
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Points : 39
    Points
    39
    Par défaut
    Bonjour

    Effectivement, c'est une méthode.

    Merci
    Henri

Discussions similaires

  1. Cast à partir d'une instance d'objet ? Comment faire ?
    Par t00f- dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 23/05/2008, 11h05
  2. Réponses: 27
    Dernier message: 03/01/2008, 11h07
  3. Réponses: 20
    Dernier message: 13/08/2007, 16h11
  4. Réponses: 4
    Dernier message: 14/09/2006, 12h25
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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