2011-06-01 4 views
4

Je voudrais savoir comment puis-je créer une «intention dynamique» dans android. En résumé, ce que je veux accomplir est de montrer une liste d'éléments de données qui sont fecthed à partir d'un webservice et quand un article est cliqué pour lancer une nouvelle activité avec certains paramètres définis. Notez que tous les éléments seraient une instance de la même classe, que je suppose étendrait Activiy.Comment créer une intention dynamique dans Android?

J'ai réussi à lister les éléments, mais je n'arrive pas à trouver un moyen de faire la partie 'intention dynamique'.

Je sais que le code suivant ne fonctionne pas, mais il illustre ce que j'essaie d'accomplir.

Espérons que je me suis fait comprendre.

if (((TextView) view).getText().equals("Page")) 
{  
     MyClass item = new MyClass("foo", "bar"); 
     myIntent = new Intent(view.getContext(), item); 
} 

Merci.

Répondre

2

Vous pouvez envoyer n'importe quel contenu personnalisé ou «dynamique» à travers les extras sur l'intention. Ceux-ci sont disponibles pour l'activité lancée par l'intention.

de sorte que vous feriez quelque chose comme:

myIntent.putExtra("myCutsomDataTag","myCustomData"); 

sur l'intention que vous lancez.

Dans votre activité de réception que vous feriez quelque chose comme:

Intent launchIntent = getIntent(); 
String myCustomData = launchIntent.getStringExtra("myCutsomDataTag"); 
+0

merci. cela fonctionne, mais je dois passer une structure de données plus grande, quelque chose comme un arraylist avec 100 éléments. Savez-vous comment je pourrais y parvenir? – nunos

+1

Ça devient un peu plus compliqué. Il existe des moyens de l'atteindre, mais cela dépend de la disposition de votre application. Si les activités font partie de la même application, vous pouvez fournir une application personnalisée intstance et stocker les données là-bas. Il serait accessible à partir des deux activités. Cela signifie que vous devez avoir une sous-classe Application personnalisée, ce qui, bien que ce ne soit pas difficile à réaliser, rend votre modèle plus compliqué. Sinon, vous pouvez utiliser un stockage persistant (système de fichiers/db/etc). – fleetway76

+0

Merci beaucoup pour votre réponse à nouveau. J'ai compris l'idée. Cependant, je ne fais que commencer avec le développement android et ne pense pas que je suis capable de le découvrir par moi-même pour le moment. Cela ne vous dérangerait-il pas de donner un exemple simple avec l'architecture 'application subclass'? Cela serait très appréciable. Merci. – nunos

1

Peut-être que vous pouvez écrire une classe singleton où vous stockez les données personnalisées. Une fois l'activité démarrée, vous lisez les données de ce singleton ...

JPM

Questions connexes