IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Changement d'image en MVC


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 174
    Par défaut Changement d'image en MVC
    Bonjour ,

    Bon j'ai juste un petit souci , je débute en développement Android , j'ai un TP a rendre pour ma séance prochaine , le principe est simple , il faudra entrer le nom du joueur après il y as une nouvelle activité qui s'ouvre , et on doit cliquer sur le bouton pour que l'image change , a chaque clique ! bon j'ai réussis mettre en place tout mes interfaces , j'ai mis un intent en relation avec ma deuxième activité , mais quand je clique sur le bouton rien ne se passe !

    bon la le principe c'est de travailler en modèle MVC , voici l’arborescence de mon projet :

    Nom : Capture1.JPG
Affichages : 106
Taille : 32,4 Ko

    La j'ai le code de ma MainActivity et son interface graphique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package appgame.storycompany.com.gamechoice.Controleur;
    ...
     
    public class MainActivity extends AppCompatActivity {
     
        private EditText nom_joueur;
        private Button button_envoyer;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            nom_joueur = (EditText) findViewById(R.id.editText);
            button_envoyer = (Button) findViewById(R.id.button);
     
            button_envoyer.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
     
                    String nom_j = nom_joueur.getText().toString();
     
                    EnvoyerNom(nom_j);
                }
            });
        }
     
        private void EnvoyerNom(String nom)
        {
            Intent intent_send = new Intent(this,GameActivity.class);
            intent_send.putExtra(getString(R.string.editText_nom_ressource),nom);
            startActivity(intent_send);
        }
     
     
    }
    Nom : dazd.JPG
Affichages : 109
Taille : 20,2 Ko

    La j'ai le code de ma deuxième activité et son interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package appgame.storycompany.com.gamechoice.Controleur;
    ....
     
    public class GameActivity extends AppCompatActivity {
     
        private TextView nom_joueur_textview;
        private Button next_game_button;
        private ImageView game_image;
     
        private Game game = new Game();
        private Page page_game_courrante ;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_game);
     
            nom_joueur_textview = (TextView) findViewById(R.id.textView);
            next_game_button = (Button) findViewById(R.id.button2);
            game_image = (ImageView) findViewById(R.id.imageView);
     
            Intent recup_nom = getIntent();
     
            String nomJoueur = recup_nom.getStringExtra(getString(R.string.editText_nom_ressource));
     
     
            if(nomJoueur.isEmpty()){
                nomJoueur = "Player1";
            }
     
            nom_joueur_textview.setText(nomJoueur);
     
            loadGamePage(0);
     
     
        }
     
        private void loadGamePage(int id_choice_page)
        {
     
            page_game_courrante = game.getPage(id_choice_page);
     
            Drawable drawable = getResources().getDrawable(page_game_courrante.getId_image_game());
     
            game_image.setImageDrawable(drawable);
     
            next_game_button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int nextPage = page_game_courrante.getChoice().getNextPage();
                    loadGamePage(nextPage);
                }
            });
        }
     
    }
    Nom : dazdd.JPG
Affichages : 106
Taille : 26,3 Ko

    La j'ai mais 3 classes Modèle que j'ai utilisé pour mettre en place ma page , avec les images , le choix .. :


    Choise.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package appgame.storycompany.com.gamechoice.Model;
     
     
    public class Choice {
     
        private int nextPage;
     
        public Choice(int nextPage) {
            this.nextPage = nextPage;
        }
     
        public int getNextPage() {
            return nextPage;
        }
     
        public void setNextPage(int nextPage) {
            this.nextPage = nextPage;
        }
    }
    Page.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package appgame.storycompany.com.gamechoice.Model;
     
     
    public class Page {
     
        private int id_image_game;
        private Choice choice;
     
        public Page(int id_image_game, Choice choice) {
            this.id_image_game = id_image_game;
            this.choice = choice;
        }
     
     
        public int getId_image_game() {
            return id_image_game;
        }
     
        public void setId_image_game(int id_image_game) {
            this.id_image_game = id_image_game;
        }
     
        public Choice getChoice() {
            return choice;
        }
     
        public void setChoice(Choice choice) {
            this.choice = choice;
        }
     
    }
    Game.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package appgame.storycompany.com.gamechoice.Model;
     
    import appgame.storycompany.com.gamechoice.R;
     
    public class Game {
     
        private Page[] gamePage;
     
        public Game(){
     
            gamePage = new Page[3];
     
            gamePage[0] = new Page(R.drawable.game3,new Choice(0));
     
            gamePage[1] = new Page(R.drawable.game2,new Choice(1));
     
            gamePage[2] = new Page(R.drawable.game1,new Choice(2));
        }
     
        public Page getPage(int pageNumber) {
            return gamePage[pageNumber];
        }
     
    }

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Bonsoir zikyoubi,

    personnellement je ne vois pas vraiment de quelle manière le Design Pattern MVC a été mise en place.

    Il me semble que ta Vue et ton Contrôleur sont confondues. Il est vrai qu'il existe différentes implémentations

    de ce modèle mais une forme réduite pourrais être plutôt Model-Vue et non Controleur-Model.

    Bon, je ne suis pas expert en la matière, donc place aux experts pour des corrections ou apports.

    Concernant le code, il y a un soucis dans la classe Game.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    import appgame.storycompany.com.gamechoice.R;
     
    public class Game {
     
        private Page[] gamePage;
     
        public Game(){
     
            gamePage = new Page[3];
     
            gamePage[0] = new Page(R.drawable.game3,new Choice(0));
     
            gamePage[1] = new Page(R.drawable.game2,new Choice(1));
     
            gamePage[2] = new Page(R.drawable.game1,new Choice(2));
        }
     
        public Page getPage(int pageNumber) {
            return gamePage[pageNumber];
        }
     
    }
    Et aussi dans ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private void loadGamePage(int id_choice_page)
        {
     
            page_game_courrante = game.getPage(id_choice_page);
     
            Drawable drawable = getResources().getDrawable(page_game_courrante.getId_image_game());
     
            game_image.setImageDrawable(drawable);
     
            next_game_button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int nextPage = page_game_courrante.getChoice().getNextPage();
                    loadGamePage(nextPage);
                }
            });
        }
    D'après ma compréhension la méthode public int getNextPage() est sensée te renvoyé l'index de la prochaine page n'est-ce pas ? Suivant la manière

    dont les pages ont été créées, la première page a pour suivant la page d'index 0, la deuxième page a pour suivant la page d'index 1, la troisième page

    a pour suivant la page d'index 2.

    Tu vois un peu le soucis ?

    Le paramètre que tu passe à ta méthode loadGamePage correspond au numéro de la prochaine page qui malheuresement ici ne change pas.

    Une solution c'est de faire en sorte que la position d'une page dans le game_page ne soit la même que sont suivant.

    Simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import appgame.storycompany.com.gamechoice.R;
     
    public class Game {
     
        private Page[] gamePage;
     
        public Game(){
     
            gamePage = new Page[3];
     
            gamePage[2] = new Page(R.drawable.game3,new Choice(0));
     
            gamePage[1] = new Page(R.drawable.game2,new Choice(1));
     
            gamePage[0] = new Page(R.drawable.game1,new Choice(2));
        }
     
        public Page getPage(int pageNumber) {
            return gamePage[pageNumber];
        }
     
    }
    Ok, trop bavard, mais j'espère avoir été util.

    ___salut !

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 174
    Par défaut
    Bonjour ,
    Désoler du retard , c'étais dans l'index de ma page Game , il fallait juste changer , par contre j'ai pas totalement compris pourquoi, si vous pouvez m’éclairez svp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/01/2006, 10h57
  2. Changement d'image suivent le passage du curseur!
    Par ghyosmik dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/01/2006, 17h22
  3. [FLASH 8] Realiser un changement d'image
    Par Gemelos dans le forum Flash
    Réponses: 3
    Dernier message: 21/11/2005, 13h48
  4. Changement d'image si l'originale absente
    Par MitchDap dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2005, 09h06
  5. changement d'image par radio boutton
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/03/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo