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 :

startActivity avec paramètres dans onListItemClick


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Par défaut startActivity avec paramètres dans onListItemClick
    Bonjour à tous,

    Je découvre tant bien que mal le devs sous Android depuis quelques jours.
    Je rencontre bon nombre de difficultés et la plupart tourne autour de la gestion de l'interface graphique mais avec les nombreux tips ici et là on s'en sort la plupart du temps.

    Là en revanche je bloque depuis un certain temps sur un point.
    Je vais essayer de résumer.

    J'ai ma classe principale qui étends ListActivity
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Main extends ListActivity
    Je récupère un bean maison qui contient une liste d'articles via un service.

    A partir de cette liste je popule ma ListView via un SimpleAdapter
    Jusque là tout va bien.

    Maintenant ce que j'aimerais c'est ouvrir un autre Activity lors d'un click sur un item de la liste.

    j'ai donc ajouté un registerForContextMenu(getListView()); dans mon onCreate et ajouté la méthode onListItemClick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	protected void onListItemClick(ListView l, View v, int position, long id) {
    		super.onListItemClick(l, v, position, id);				
    		Intent i = new Intent(this, ArticleDetail.class);
                    startActivity(i, ACTIVITY_DETAIL);        
    	}
    Seulement voilà, quand j'arrive dans le nouvel Activity il me manque l'identifiant de l'article à afficher.

    J'ai bien vu la méthode putExtra mais je ne sais pas quoi lui passer. j'ai un id dans la signature de onListItemClick mais je ne sais pas à quoi il correspond.

    Avec la position je pourrais aller chercher dans mon bean les infos nécessaires via une boucle mais je trouve que cette méthode n'est pas très propre et certainement pas optimisée (même si ma liste ne va contenir que 30 éléments max)

    Voilà ma question est, est-ce que vous avez une solution propre et optimisée pour passer un identifiant unique dans le startActivity

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,
    Si tu veux passer un paramètre d'une activité à une autre, voici un bout de code que tu peux réutiliser :

    Dans l'activité qui appele : (dans ton onclick dans ce cas là)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Bundle objetbunble = new Bundle();
    int maValeur = 10;
     
    objetbunble.putInt("MaCleDeParametre", maValeur );
     
    //On envoi le message
    Intent defineIntent = new Intent(this.getContext(), MaDeuxiemeActivite.class);
     
    // on passe notre objet a notre activities
    defineIntent.putExtras(objetbunble );
     
    // on appelle notre activité
    startActivityForResult(defineIntent, 0);
    Dans l'activité appelée (Dans le onCreate) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Récupération de la valeur dans l'Intent...
    Bundle objetbunble  = this.getIntent().getExtras(); 
     
    int maValeur = -1;	
    if (objetbunble != null && objetbunble.containsKey("MaCleDeParametre")) {
    	maValeur = objetbunble.getInt("MaCleDeParametre");
    } else {
     //Erreur...
    }

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Bonne question à laquelle je répondrais, "pourquoi pas?"
    Par habitude, je fais telle que je l'ai présenté, mais je ne vois, à priori, pas de raison d'utiliser ta façon de faire (même si il veut échanger des int et pas des String )

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par MrDuChnok Voir le message
    Bonne question à laquelle je répondrais, "pourquoi pas?"
    Par habitude, je fais telle que je l'ai présenté, mais je ne vois, à priori, pas de raison d'utiliser ta façon de faire (même si il veut échanger des int et pas des String )
    Ma question (je me suis trompé de fonction ) c'est la méthode entre créer un bundle ou directement utiliser les fonctions de l'intent.

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Je pense pas qu'il y ai de différences particulières.
    Dans mon cas, je créé l'objet "Bundle" et j'y met tout ce dont j'ai besoin. Puis je passe cet objet à mon intent.

    Dans ton cas, tu dit à ton intention de stocker cet objet là (et du coup si son "Bundle" est vide, il doit la créer, sinon réutiliser celle qui l'a déjà).

    Donc au final, il ne doit pas avoir de différences (Mais bon, peut être que des puristes en voit une, et dans ces cas là je les laisserais témoigner à ma place sur ce sujet )

Discussions similaires

  1. update avec paramètre dans access (pour modifier une image)
    Par salihovic dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/02/2008, 21h27
  2. appeler une méthode avec paramètre dans une page JSP
    Par javasmif dans le forum Struts 2
    Réponses: 1
    Dernier message: 06/12/2007, 10h48
  3. [Tableaux] Lien avec paramètre dans un tableau
    Par leeloo1902 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2007, 16h02
  4. Réponses: 3
    Dernier message: 20/04/2007, 14h06
  5. Problème avec paramètres dans un <messagebundle>
    Par imagine64 dans le forum JSF
    Réponses: 6
    Dernier message: 12/02/2007, 17h27

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