3 votes

Appeler la méthode de classe après StartActivity

J'ai deux cours. Class1 et Class2 - Toutes deux étendent Activity.

La classe 1 est lancée au lancement du programme et lorsque vous cliquez sur un bouton, elle est censée glisser vers la classe 2 - cela fonctionne bien.

Cependant, la classe 2 possède un TextView dont je veux changer le texte en fonction du bouton cliqué, mais je n'arrive pas à trouver comment le faire.

J'utilise startActivity(Class1.this,Class2.class) ; pour glisser à travers ce qui crée évidemment une nouvelle instance de Class2

J'ai également essayé de créer une instance de Class2 puis d'appeler startActivity(Class1.this,myVar.getClass()) ;

mais le résultat est le même, avez-vous une idée de la façon dont je peux appeler Class2.someMethod() ; pour que cela affecte la nouvelle instance de Class2 affichée ? ou est-ce que je m'y prends mal ?

Merci d'avance !

5voto

CommonsWare Points 402670

J'utilise startActivity(Class1.this,Class2.class) ; pour glisser à travers ce qui crée évidemment une nouvelle instance de Class2

Non, vous ne l'êtes pas, car cela ne compilera pas. Vous utilisez probablement :

startActivity(new Intent(Class1.this,Class2.class));

J'ai également essayé de créer une instance de Class2 puis d'appeler startActivity(Class1.this,myVar.getClass()) ;

Ça ne compile pas non plus. Voici la documentation pour startActivity() .

Une idée sur la façon d'appeler Class2.someMethod() ; pour que cela affecte l'instance de Class2 nouvellement affichée ?

Tu ne le fais pas.

ou est-ce que je m'y prends mal ?

Si vous voulez transmettre des données au nouveau Activity -- et que les données sont simples, comme celles que l'on peut mettre dans les paramètres d'une URL dans une application Web, puis l'empaqueter sous forme de fichier Intent extra :

Intent i=new Intent(Class1.this,Class2.class));
i.putExtra("some key", "some value"); // there are many different types of data you can package
startActivity(i);

Ensuite, en Class2 en onCreate() vous pouvez appeler getIntent().getStringExtra("some key") pour récupérer les données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X