Kricek Posté(e) 5 janvier 2011 Share Posté(e) 5 janvier 2011 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 More sharing options...
chpil Posté(e) 5 janvier 2011 Share Posté(e) 5 janvier 2011 Utilise Class.forName Class maClass = Class.forName("nom.de.classe.complet.package.compris"); Intent intent = new Intent(this, maClass); cf doc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kricek Posté(e) 5 janvier 2011 Auteur Share Posté(e) 5 janvier 2011 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.