Je souhaite créer une fonction qui reçoit une activité en tant que paramètre et avec elle, elle changera à cette activité. Mais si j'utilise le Par exemple. Appelant la fonction: p> comment il est défini: p> et si j'essaie un autre appel: P> .Class code> d'une activité pour appeler la fonction, il modifie le paramètre de cette fonction à une activité
Classe code>, et il va donc accepter cette activité seulement.
sendUserToActivity(LoginActivity.class);
3 Réponses :
Peut-être que vous pouvez essayer ceci:
private void sendUserToActivity(Class<? extends Activity> activityClass) { Intent intent = new Intent(RegisterActivity.this, activityClass); startActivity(intent); }
Ça marche! Je ne penserais jamais que cela pourrait être écrit, merci!
Pas de problème, lisez un peu des génériques si vous le pouvez, c'est vraiment utile.
Voici un exemple, comment le faire dans votre cas:
private void sendUserToActivity(MainActivity activityClass) { Intent intent = new Intent(activityClass, activityClass.getClass()); startActivity(intent); }
Mais recevrait-il des activités autres que les autres déclarent MainAlactivité comme premier paramètre?
Aucun. Alexander Cavalheiro Becker ci-dessus a fait de l'affaire exactement comment vous avez besoin.
xyz(XActivity.class); void xyz(Class<?> cls) { Intent intent = new Intent(MainActivity.this, cls); startActivity(intent); } does the job. I tried this now.
Pouvez-vous essayer d'utiliser juste classe au lieu de la classe ?
Ça ne marche pas. Il demande à importer la classe d'activité et après cela, il affiche uniquement une erreur sur "MainAlacivit.Class" et "Loginactivit.Class" lorsque vous appelez la fonction
Pourquoi avez-vous besoin de passer de l'activité? Vous n'avez besoin que d'objet d'activité?
Passer toute l'activité a été ma première pensée
On dirait que vous devez utiliser le contexte de l'activité peut-être?
Utilisez la classe étend une activité>