2011-09-19 2 views
1

J'ai une activité avec les détails du produit. J'affiche le nom et les détails du produit dans les textviews.J'ai stocké les données dans le fichier string string strings.xml.Comment passer l'intention dans ce cas

Si dans la description du produit, tout autre nom de produit vient je dois le lier. Au clic du lien de produit mentionné, il devrait montrer la même activité avec le nom de produit et les détails. Je peux le lier mais comment puis-je passer des intentions dans ce cas? Je dois montrer la même activité mais des valeurs différentes .. dans textviews ..

Merci.

Répondre

0
intent.putExtra("name", productName); 
intent.putExtra("details", productDetails); 

Et dans l'autre activité:

Bundle bundle = getIntent().getExtras(); 
String productName = bundle.getString("name"); 
String productDetails = bundle.getString("details"); 
0

Je pense que vous ne avez pas besoin intention dans ce cas. Vous pouvez organiser les choses sans redémarrage complet de l'activité. Pas besoin de le détruire et de le recréer, car le lien est dans sa portée. Changez simplement le contenu de texviews.

+0

IMO Intents sont bons, ils vont enregistrer l'état nécessaire pour redémarrer gracieusement l'activité quand il est inévitablement détruit et recréé. D'autres personnes combattant le système d'intention m'ont causé beaucoup de maux de tête. – nmr

+0

Je n'ai pas dit que les intentions sont mauvaises, j'ai dit qu'elles ne sont pas nécessaires dans ce cas - simplement parce qu'il n'y a pas besoin que toute l'activité soit détruite et créée à nouveau. Le dernier ne peut pas être visuellement agréable ni économe en énergie. – ggurov

0

je suggère que passer l'ID du produit, intent.putExtra("product_id", productId)

puis à ProductDetailsActivity ajouter

private Product getProduct() { 
    return Products.lookup(getIntent().getExtras().getInt("product_id")); 
} 

Puis en onCreate faire quelque chose comme mNameView.setText(getProduct.getName()) et de même pour mDescriptionView ou autre.