Voici ce que je l'ai fait personnellement l'un de mes petits projets mobiles. Au lieu de créer une procédure distincte, écran moins Activity
où la condition est et qui lance l'écran correspondant, je mets la condition dans un Activity
et fait une setContentView()
dynamique, comme dans:
if (!userIsLoggedIn) {
setContentView(R.layout.signup);
} else {
setContentView(R.layout.homescreen);
}
Deux remarques importantes à cette approche :
1: Au lieu d'écrire cela dans onCreate()
, vous voulez mettre la prise de décision à l'intérieur onResume()
précisément parce que ce dernier est toujours appelé chaque fois que l'écran doit être affiché à l'avant. Vous pouvez voir cela à partir de l'Android activity life cycle. Si, par exemple, l'utilisateur vient de télécharger mon application et la lance pour la première fois, parce qu'aucun utilisateur n'est connecté, elle sera redirigée vers la page d'inscription. Quand elle a fini de s'inscrire et pour une raison quelconque appuie sur le bouton HOME
(pas BACK
, qui ferme complètement l'application!) Et reprend l'application, la mise en page qu'elle va voir est déjà celle de l'écran d'accueil. Si je mets le conditionnel à l'intérieur onCreate()
, ce qui aurait été affiché est l'écran d'inscription parce que, selon le cycle de vie, il ne revient pas à onCreate()
lorsque l'on ramène une application à l'avant. 2: Cette solution n'est idéale que si la fusion des fonctionnalités de ces deux activités ne produirait pas un long bloc de code diabolique. Comme je l'ai dit, mon projet était petit (sa caractéristique principale se situe en arrière-plan), de sorte que le Activity
dynamique unique n'en avait pas trop. Le Activity
sans écran est certainement la voie à suivre si vous avez besoin de votre code pour être plus lisible par l'homme.
exactement ce que j'ai cherché, je vous remercie de demander cela déjà. – mad