Je suis en train de créer un jeu dans lequel je vais passer de mon écran principal à un écran de bataille et revenir à la fin du combat. Est-il préférable d'avoir les deux écrans en tant qu'activités distinctes ou puis-je utiliser la méthode setContentView (R.layout.screen2)?
J'ai essayé de faire basculer l'écran d'activité, mais chaque fois que je l'essaie, mon téléphone me dit que l'application ne répond pas. S'il est préférable d'utiliser les activités, je prendrai le temps de régler le problème, mais pour le moment, je choisirai une solution de facilité pour que les choses fonctionnent.
L'appel de plusieurs fois à setContentView () n'est pas recommandé. La méthode normale pour passer d'une page à l'autre dans une même activité consiste à utiliser un ViewFlipper ou un FrameLayout (voir Appeler plusieurs fois setContentView () et Comment créer un écran dynamique (comme celui de l'iPhone) sous Android )
Alternativement, vous pouvez utiliser ViewSwitcher, qui semble assez bien répondre à vos besoins. Un bon tutoriel détaillé est disponible sur http://inphamousdevelopment.wordpress.com/2010/10/11/using-a-viewswitcher-in-your-Android-xml-layouts/
Le moyen le plus simple de changer de vue de manière dynamique une activité consiste à gonfler la vue cible dans le ViewGroup racine de l'activité (FrameLayout de préférence). Ceci est juste un code d'une ligne
inflater.inflate(R.layout.target_view,(ViewGroup)findViewById(R.id.activity_root_viewgroup), true);