Kricek Posté(e) 5 janvier 2011 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"...
chpil Posté(e) 5 janvier 2011 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
Kricek Posté(e) 5 janvier 2011 Auteur 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!
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.