Aller au contenu

[Résolu] Comment lancer une Intent quand on a le nom de la classe sous forme de String?


Kricek

Recommended Posts

Coucou tout le monde!

Tout d'abord mes meilleurs voeux à toutes et à tous pour cette nouvelle année.

Je pense que tout est dans le titre mais je vais néanmoins essayer d'être le plus précis possible:

Je souhaite lancer une Activité "variable"....

Voilà le topo:

- J'ai une base de données qui contient, entre autres, dans une table, des textes.

Ces textes sont récupérés et pour chaque texte, je génère une TextView contenant le texte correspondant.

- Dans une autre table, j'ai associé les id des textes avec le nom de classes (sans le ".apk").

- Quand l'utilisateur clique sur l'une des TextView, je récupère le nom de la classe associée au format String.

Et on en arrive à mon problème: Je souhaiterais lancer une Intent, dont le nom de la classe appelée serait la String que j'ai...

Quelque chose du style:

Intent intent = new Intent(this, "maString".class);
startActivity(intent);

Mais bien sûr, ca; ca ne fonctionne pas...

J'ai fouiné un peu et j'ai trouvé quelque chose avec les classes "ClassLoader" et "PathClassLoader" mais je ne suis pas sûr que ce soit bien adapté à ce que je veux faire...

Si c'est le cas, c'est donc que je n'ai pas su les utiliser et donc un ptit coup de main ne srerait pas de refus! ;)

Merci d'avance!

EDIT : La solution est de faire appel à

Class.forName("package_complet.MaClasse");

qui retourne un objet "Class"...

Lien vers le commentaire
Partager sur d’autres sites

Utilise Class.forName

Class maClass = Class.forName("nom.de.classe.complet.package.compris");
Intent intent = new Intent(this, maClass);

cf doc

Ptin, j'suis trop bête... Je l'ai déjà utilisé en plus! arf... Je teste ca tout de suite...

Merci en tout cas!

Edit: Tout est ok... Merci encore!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...