Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Java pour les développeurs Android

Mettre en place le contrôleur

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Après avoir complété le développement de l'application, votre formateur vous explique comment y intégrer la partie contrôleur.
07:53

Transcription

Dans la dernière vidéo de ce chapitre, nous allons nous consacrer à la dernière partie, à savoir, la réalisation du contrôleur, c'est-à-dire que le but du contrôleur va être de manipuler nos données et de mettre à jour l'IHM. Nous avons déjà tous les pointeurs vers nos composants graphiques, il nous manque à créer un pointeur vers une partie qui représentera nos données. Cette partie, je vais l'initialiser. Si vous remarquez, nous avons appris les constructeurs, mais dans la classe « MainActivity », il n'y a pas de constructeurs. On se sert un peu de la méthode « onCreate », en guise de constructeur. C'est une spécificité des classes « activity » du SDK d'Android. Quand on travaille avec une IHM, une façon simple de la gérer est partir du principe que j'ai mes données, que j'appelle une méthode, par exemple, rafraîchir écran, qui à partir de ces données, met à jour l'IHM. Si je charge toutes mes données d'un coup, par exemple, d'une base de données, que j'appelle la méthode : rafraîchir écran, derrière, mon IHM doit être à jour. Nous allons donc créer la méthode rafraîchir écran. Et à chaque fois que nous effectuerons une action qui pourrait avoir un impact sur notre IHM, nous rappellerons rafraîchir écran, même, si au final, rien ne change. La méthode rafraîchir écran va donc mettre à jour les données sur l'IHM. Un clic sur le bouton Lancer, va manipuler nos données, c'est-à-dire, notre partie, et derrière, on appellera la méthode rafraîchir écran, pour mettre à jour notre IHM. Commençons par le bouton Lancer, le but : faire lancer le joueur qui doit jouer. Ensuite, on va contrôler son lancer, qu'est-ce qu'il a fait, est-ce qu'il marque des points ou pas ? Derrière, une fois qu'il a fini de jouer, on va changer de joueur courant. Puis, on va incrémenter le tour. Si jamais le joueur 1 et le joueur 2 ont joué, on va donc incrémenter le tour de la partie, c'est-à-dire que si c'est au joueur 1 de jouer, on incrémente le tour. Et enfin, on met à jour notre IHM, en appelant la méthode rafraîchir écran. Maintenant que l'on a déterminé toutes les actions, prenons les une par une. Faire jouer le joueur courant. Dans partie, on a la possibilité de récupérer le joueur courant, on a fait un « getJoueur » courant ou plutôt appelé « getJoueurSuivant ». On va donc lui demander de lancer ses dés. Maintenant qu'il a lancé ses dés, on va contrôler son score. Ici, on ne sais pas si c'est J1 ou c'est J2 qui joue, mais à la limite, ça n'a pas d'importance. Pour contrôler son lancer, je vais récupérer « getJoueurSuivant. », son score de dés, vérifier si c'est supérieur ou égal au nombre à atteindre. Je retourne dans partie, nombre à atteindre, public, donc, Partie. nombre à atteindre. Donc, s'il a fait 10, on lui incrémente son score, « partie.getJoueurSuivant.setScore », de « partie.getJoueurSuivant.getScore. » Attention à ne pas confondre son score dans la partie. Donc, entre 0 et 10 et son score des dés, entre 2 et 12 + 1. Ici, si on veut éviter d'écrire une longue ligne, on pourrait très bien mettre dans la classe joueur, une méthode « add one point », ajouter un point qui ferait tout ça. Voilà, j'ai contrôlé son relancer et j'ai mis à jour son score. Maintenant, on va changer de joueur courant. Donc, comment on change de joueur courant ? Dans partie, on a créé une méthode qui change le joueur, donc, on va l'appeler : ça change le joueur courant. On regarde si j'incrémente le nombre du tour, donc, maintenant que les joueurs ont changé, on regarde : est-ce que le joueur suivant correspond au joueur 1 ? Si le joueur qui doit jouer, c'est le joueur 1 c'est qu'on va devoir incrémenter le nombre de tours. Donc, la partie, on récupère le nombre de tours et on lui ajoute 1. Même chose, on pourrait créer dans la classe partie, une méthode qui fasse ajouter un tour ou incrémenter tour. Petit point de réflexion, pourquoi ça, ça ne marche pas ? Tout simplement, parce que ça, ça retourne un entier, mais ça ne modifie pas l'entier qui est dans partie. Maintenant, rafraîchir écran, va à partir de partie, mettre à jour l'IHM. Alors, le plus simple, dans rafraîchir écran, ça va être de partir de haut en bas. Donc, je vais commencer par le tour de la partie, là, c'est facile, « tv setText partie.getTour ». Attention, ici, « getTour »,c'est un entier. Si je le passe directement à « setText », il va croire que c'est un des éléments de nos fichiers de ressources. Je lui rajoute donc un « string » derrière. Ensuite, on va mettre à jour le score des joueurs. Donc ici, on va prendre nos deux « tex view », de chacun des joueurs et dans notre partie, on va récupérer le joueur1 et lui demander son score, même principe, c'est aussi un entier. On continue, l'image, est-ce qu'on l'affiche ou pas ? Tout dépend du joueur courant. On va donc regarder quel est le joueur courant. On va demander à la partie de me rendre le joueur suivant, si c'est J1, je vais rendre l'image « view » de J1, visible et si c'est J2, je vais rendre l'image « view » de J2, visible. Si je fais ça, qu'est-ce qu'il va se passer ? Au bout d'un moment, je vais me retrouver avec les deux images « view » visibles, donc, je vais avoir les deux étoiles. Donc, il va falloir aussi, si c'est à J1 de jouer, de masquer la deuxième étoile, celle de J2 et si c'est à J2 de jouer, l'inverse. Maintenant, le dé à afficher, car on a quatre dés : deux pour J1 et deux pour J2, mais on en affiche que deux. On affiche uniquement les dés de joueur qui vient de jouer. Si on affiche les dés du joueur qui vient de jouer, on affiche donc pas, les dés, du joueur qui doit jouer. Voilà donc, il y a une petite manipulation à comprendre, si c'est à J1 de jouer, on affiche donc les dés de J2. Donc, on récupère J2, on récupère son Dé1 et son Dé2, même chose si c'est des entiers. Et à l'inverse, si c'est à J2 de jouer, on affiche les dés de J1. Alors, si je fais ça, qu'est-ce qui va se passer ? Je vais pouvoir cliquer sur lancer indéfiniment, il me faut une condition de fin, donc, quand est-ce que le jeu se termine ? Quand mon nombre de tours a atteint mon nombre de lancers. Donc, mon nombre de lancers qui est dans partie et bien sûr, +1, sinon, on ne fait pas le dernier lancer. Et là, c'est à vous de jouer, à vous d'imaginer la fin, rajoutez un « text view », rajoutez un bouton qui permet de relancer. Maintenant, vous commencez à avoir un petit peu de bagage pour laisser libre cours à votre imagination. Voilà, dans mon cas, je vais juste mettre un test. On va tester, on voit bien mon étoile qui se déplace, mon nombre de tours qui s'incrémente, mes scores qui s'incrémentent, quand il faut. Tour 7, tour 8, tour 9, tour 10, dernier tour, et ma condition de fin qui est apparue. Voilà, ce sera tout pour ce projet.

Java pour les développeurs Android

Prenez en main la syntaxe et les concepts de Java pour vos développements d’applications pour Android. Abordez les variables, les chaînes de caractères, les conditions, etc.

7h01 (65 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Votre/vos formateur(s) :
Date de parution :24 avr. 2017
Durée :7h01 (65 vidéos)

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !