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 :

Envoyer des donnés de la vue 1 à une vue 2 par le biais d'une boite de dialogue


Sujet :

Android

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut Envoyer des donnés de la vue 1 à une vue 2 par le biais d'une boite de dialogue
    Bonjour,
    J'ai une vue 1 possédant une ListView et à chaque fois que je clique sur un item de la listView une boite de dialogue apparait avec deux boutons supprimer (qui supprime l'item sélectionné) et modifier (qui permet de changer les valeurs de l'item sélectionné). Si l'on clique sur modifié on part sur une vue 2 qui permet la modification.
    Je voudrais savoir comment envoyé les données de l'item sélectionné à la vue 2 lorsqu'on clique sur le bouton modifier de la boite de dialogue pour que les champs de la vue 2 soit deja rempli par les valeurs de l'item.

    vue 1
    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
     
    public class MainActivity extends ListActivity  {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            getListView().setOnItemClickListener(SupModifOnItemClick);
     
       }
     
        private ListView.OnItemClickListener SupModifOnItemClick = new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     
                FragmentManager manager = getFragmentManager();
                Dial d                                = new Dial();
                d.show(manager,"Dial");
           }
      };
    La boite de dialogue
    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
     
     
    public class Dial extends DialogFragment {
     
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View v = inflater.inflate(R.layout.boite_de_dialogue,null);
     
            Button modifier  = (Button) v.findViewById(R.id.modifier);
            modifier.setOnClickListener(modifieOnClick);
     
            return v;
     
        }
     
        private View.OnClickListener modifieOnClick = new View.OnClickListener() {
     
            public void onClick(View v) {
     
           }
        };

    boite_de_dialogue.xml
    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
     
     
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Medium Text"
            android:id="@+id/textView"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"/>
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Modifier"
            android:id="@+id/modifier"
            android:layout_alignParentLeft="@+id/textView"
            android:layout_below="@id/textView"/>
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Supprimer"
            android:id="@+id/supprimer"
            android:layout_below="@id/textView"
            android:layout_toRightOf="@+id/modifier"/>
    </RelativeLayout>
    vue 2.xml

    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
    73
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="1">
     
     
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
     
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Titre"
                android:id="@+id/textView"
                android:textStyle="bold"
                android:textColor="#ff000000" />
     
            <EditText
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:id="@+id/titre"
                android:text=""
                android:background="#ff8c8b8b" />
     
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Priorité"
                android:id="@+id/textView3"
                android:textStyle="bold"
                android:textColor="#ff000000" />
     
            <EditText
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text=""
                android:id="@+id/priorite"
                android:background="#ff8c8b8b" />
     
            <LinearLayout
                android:layout_gravity="right"
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
     
                <Button
                    android:layout_marginRight="10dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Annuler"
                    android:id="@+id/annuler" />
     
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Sauver"
                    android:id="@+id/sauver" />
            </LinearLayout>
     
        </LinearLayout>
    </LinearLayout>

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    tu peux aussi faire une boite de dialogue "2 en 1". Des EditText au-dessus des deux boutons. Si t'appuies sur le bouton "modifier" ça récupère directement les valeurs des EditText sinon l'autre bouton supprime, ça t'éviterai de balader des valeurs inutilement..

    Sinon pour faire ce que tu souhaites, t'envoies tes infos à la boite de dialogue avec cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Bundle args = new Bundle();
    args.putString("KEY", value);
    dialog.setArguments(args);
    puis du dialogFragment vers l'activité suivante avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Intent intent = new Intent(gestActivity(), activity2.class);
    intent.putExtra("KEY", value);
    startActivity(intent);

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Je n'arrive pas à récupérer les donnés dans l'activité 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    ...
    Intent intent = new Intent(v.getContext(),ActivityAjoutTache.class);
     
    intent.putExtra("titre", titre);
    intent.putExtra("priorite", priorite);
     
    startActivityForResult(intent, 0);
    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
     
     
        EditText t;
        EditText p;
     
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_ajout_tache);
     
            t = (EditText) findViewById(R.id.titre);
            p = (EditText) findViewById(R.id.priorite);
        }
    ...
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     
            if (requestCode == 0) {
                t.setText(data.getStringExtra("titre"));
                p.setText(data.getStringExtra("priorite"));
     
     
            }
        }

  4. #4
    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
    Heu... y a pas fourvoyage entre les deux ?


    Activity-A .... appel de startActivityForResult(B,xxx); <= intent avec paramètres pour B
    Activity-B .... fonction onCreate(Bundle ...); <= récupération de l'intent et des paramètres venant de A
    Activity-B .... appel de setResult(success,xxxx); <= Intent avec paramètres de retour pour A
    Activity-B .... appel finish(); <= retour à A
    Activity-A .... fonction onActivityResult(xxx,intent); <= récupération des paramètres de retour (le setResult fait dans l'activity B).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    j'ai bien réussi à récupérer les données dans l'activité 2 mais j'ai un probleme pour appliquer la modification.

    (Dans l'activité 2 j'ai un bouton Sauver qui ajoute ou modifie l'item dans la ListView en envoyant les données dans l'activité 1 et un bouton Cancel qui revient dans l'activité 1)

    Quand j'ajoute une tache :
    j'ai un bouton ajouter dans la l'activité 1 en plus de la listView, quand je clique sur le bouton ajouter je pars dans l'activité 2 et j'entre des données que j'envoie à lactivité 1 pour ajouter dans la ListView

    J'ai mis un Log.d("A","aaaaaaa") dans l'activité 2 avant de retourner à l'activité 1
    J'ai mis un Log.d("B","bbbbbbb") dans l'activité 1 avant d'ajouter la tache dans la ListView

    Les Log.d() apparaissent.

    Quand j'utilise la modification avec la boite de dialogue:
    J'ai donc dans l'activité 1 une listView quand je clique sur un des items de la listView j'envoie les données de l'item en passant par la boite de dialogue dans l'activité 2.
    Dans l'activité 2, je récupérè les modifications et j'envoie à l'activité 1 pour qu'il modifie la listView.

    J'utilise les même méthode que pour ajouter, le Log.d("A") apparait mais pas le Log.d("B").

    Activité 1

    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
     
    public class MainActivity extends ListActivity  {
     
        int p;
        Boolean modif;
     
       protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            modif = false;
     
           getListView().setOnItemClickListener(SupModifOnItemClick);
     
      }
     
     
        private ListView.OnItemClickListener SupModifOnItemClick = new AdapterView.OnItemClickListener() {
     
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     
                p                       = position;
                modif                   = true;
                Tache  t                = (Tache) a.getItemAtPosition(position);
     
                FragmentManager manager = getFragmentManager();
     
                Bundle args             = new Bundle();
                Dial d                  = new Dial();
     
                args.putString("titre", t.titre);                       // Envoie des données à la
                args.putString("priorite", String.valueOf(t.priorite));//  boite de dialogue
     
     
                d.setArguments(args);
                d.show(manager,"Dial");
     
            }
     
        };
     
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     
            if (requestCode == 0) {
     
                if(resultCode == RESULT_OK){ //un ajout a été validé en appuyant sur le bouton save
     
                    Log.d("B","bbbbbbbbb"+p+"-----"+modif);
                    if (modif)
                    {
                        liste_taches.set(p,new Tache(data.getStringExtra("titre"),data.getIntExtra("priorite",0)));
                        modif = false;
                    }
     
                    else
                    {
                        //On ajoute une tache dans le tableau de tache et on met à jour
                        liste_taches.add(new Tache(data.getStringExtra("titre"),data.getIntExtra("priorite",0)));
                    }
     
                    adapter.notifyDataSetChanged();
     
     
                }
     
                if (resultCode == RESULT_CANCELED) { //ajout annulé via le bouton cancel
                    //écrire code si cancel
                }
            }
    La boite de dialogue
    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
     
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View v          = inflater.inflate(R.layout.boite_de_dialogue,null);
     
            Bundle args     = getArguments();
     
            titre           = args.getString("titre");
            priorite        = args.getString("priorite");
     
            Button modifier = (Button) v.findViewById(R.id.modifier);
            modifier.setOnClickListener(modifieOnClick);
     
            Button supprimer = (Button) v.findViewById(R.id.supprimer);
            supprimer.setOnClickListener(supprimeOnClick);
     
            return v;
     
        }
     
        private View.OnClickListener modifieOnClick = new View.OnClickListener() {
     
            public void onClick(View v) {
     
                Intent intent = new Intent(v.getContext(),ActivityAjoutTache.class);
     
                intent.putExtra("titre", titre);        //   Envoie des données
                intent.putExtra("priorite", priorite); //
                startActivityForResult(intent, 0);
                getDialog().dismiss();
     
     
     
     
            }
        };
    Activité 2

    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
     
     
    public class ActivityAjoutTache extends Activity {
     
     
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_ajout_tache);
     
            EditText titre      = (EditText) findViewById(R.id.titre);
            EditText priorite   = (EditText) findViewById(R.id.priorite);
     
            Intent data         = getIntent();
     
            titre.setText(data.getStringExtra("titre"));          //   Récupération et envoie des
            priorite.setText(data.getStringExtra("priorite"));   //     données au EditText
     
            Button sauve        = (Button) findViewById(R.id.sauver);
            sauve.setOnClickListener(sauveOnClick);
        }
     
        private View.OnClickListener sauveOnClick = new View.OnClickListener() {
     
            public void onClick(View v) {
     
                Intent intent        = new Intent(v.getContext(),MainActivity.class);
     
                EditText varTitre    =  (EditText) findViewById(R.id.titre);
                EditText varPriorite = (EditText) findViewById(R.id.priorite);
     
                String StrTitre      = varTitre.getText().toString();
                String StrPriorite   = varPriorite.getText().toString();
     
                try  {
     
                    int intPriorite = Integer.parseInt(StrPriorite);
     
                    intent.putExtra("titre",StrTitre);
                    intent.putExtra("priorite",intPriorite);
                }
     
                catch (NumberFormatException nfe) {}
     
                Log.d("A","aaaaaaaaa");
                setResult(RESULT_OK, intent);
                finish();
            }
        };

  6. #6
    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
    Alors... je vois que le "super.onActivityResult()" n'est jamais appelé ce qui peut poser probleme dans le cas des fragments....

    startActivityForResult() depuis un fragment va normalement appeler le onActivityResult() du fragment, mais seulement *si* l'activité appelle bien super.onActivityResult() pour les codes non "compris".


    Ou alors... utiliser getActivity().startActivityForResult() au lieu de juste le startActivityForResult() du fragment.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    J'ai mis getActivity().startActivityForResult() ca fonctionne comme je le souhaite.

    Pour supprimer je ne vois pas très bien comment le faire, puisque je veux envoyer un mot ou lancer une methode de MainActivity pour dire que je supprime et je reviens dans l'activité mais je ne veux pas la relancer avec startActivity.
    J'ai essayé de lancer une méthode Suppression() que j'ai crée dans MainActivity dans OnClickListener supprimeOnClick mais il me dise que c'est une méthode non static
    Où si non j'ai voulu envoyé une valeur avec putExtra mais je ne la récupère pas dans onCreate(Bundle) de MainActivity avec data.getIntExtra() (Quand je mets un Log.d("S"," "+data.getIntExtra("suppression")) ) rien n'est afficher)

    boite de dialogue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       private View.OnClickListener supprimeOnClick = new View.OnClickListener() {
     
            public void onClick(View v) {
     
                //Intent intent = new Intent(v.getContext(),MainActivity.class);
                //intent.putExtra("suppression", 1);
                //MainActivity.Suppression();
                getDialog().dismiss();
     
            }
     
        };

  8. #8
    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
    alors il faut regarder un peu plus de java....

    Pour appeler une méthode d'une classe "mère": MainActivity.this.suppression()

    Atttention au nommage des méthodes: toujours une minuscule au début. les majuscule en début de mot = type (classe, enum, interface)
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    J'ai mis MainActivity.this.suppression() , j'obtiens une erreur : MainActivity is not an enclosing class

  10. #10
    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
    Oui, si c'est le fragment qui contient le listener c'est normal.... il faut donc passer par le fragment.

    Ensuite utiliser un pattern-observer depuis l'activité... ou simplement faire la suppression au niveau du fragment.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    ok merci de votre aide

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/03/2015, 12h32
  2. Passage d'une instruction vb par le biai d'une fonction
    Par vascoambrgifromanger dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/04/2009, 13h15
  3. Réponses: 1
    Dernier message: 29/08/2006, 17h03
  4. Envoyer des données POST à une page !
    Par wishmastah dans le forum Langage
    Réponses: 11
    Dernier message: 11/04/2006, 19h37
  5. Réponses: 16
    Dernier message: 20/03/2006, 23h21

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