Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ANDROID] Plusieurs variable

    13 octobre 2012 à 1:17:51

    Bonjour. J'ai pour mon travail commencer a créer une application androïde pour compté mes palette.

    L'application doit compte le total de palette mais également le nombre de chaque type de palette séparément pour ensuite faire un calcul de métrage.

    C'est la que je coince je n'arrive pas a sauvegarder mon clic sur un bouton sur deux variables.

    voici mon code :

    package com.example.leclerc;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageButton;
    
    public class MainActivity extends Activity {
    	Button btn;
    	ImageButton imgbtn;
    	int clic = 0;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            // recuperation des europes
            imgbtn = (ImageButton)findViewById(R.id.imageButton1);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		
    		});
            
            // recuperation des perdu
            imgbtn = (ImageButton)findViewById(R.id.imageButton2);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des chep
            imgbtn = (ImageButton)findViewById(R.id.imageButton3);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des lpr
            imgbtn = (ImageButton)findViewById(R.id.imageButton4);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des ecopgs
            imgbtn = (ImageButton)findViewById(R.id.imageButton5);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des perdu 100*120
            imgbtn = (ImageButton)findViewById(R.id.imageButton6);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des chep100*120
            imgbtn = (ImageButton)findViewById(R.id.imageButton7);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des lpr100*120
            imgbtn = (ImageButton)findViewById(R.id.imageButton8);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            // recuperation des 120*140
            imgbtn = (ImageButton)findViewById(R.id.imageButton9);
            btn = (Button)findViewById(R.id.button1);
            // Ecoute les clic
            imgbtn.setOnClickListener(new View.OnClickListener() {
    			public void onClick(View v) {
    				// TODO Stub de la méthode généré automatiquement
    				clic++;
    				btn.setText(""+ clic +"");
    			}
    		});
            
            
            
        }
    
    
    	@Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }
    


    J'ai essayer tout un tas de truc qui fait littéralement planter la compilation.

    Je ne demande pas la solution mais juste une piste de travail. Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      13 octobre 2012 à 2:42:48

      Si je comprends bien, tu veux sauvegarder du texte contenant la valeur de "clic" sur le bouton que tu clic?

      Si oui, le paramètre View v désigne la vue sur laquelle l'event est déclenché (en l'occurence, c'est ton bouton), tu peux toujours essayer de le caster (oui c'est pas propre) et changer le texte du bouton.

      Mais le problème, c'est que je ne comprends pas trop où tu veux en venir, un peu d'explications peut-être? (Ca nous permettrait peut-être de te trouver une meilleure solution)
      • Partager sur Facebook
      • Partager sur Twitter
        13 octobre 2012 à 7:45:54

        Bonjour, effectivement ce n'est pas tres bien explique.

        Exemple :

        J'ai 2 europe
        J'ai 3 lpr

        Donc je clique 2 fois sur europes et 3 fois sur lpr. La valeur de clic sera donc de 5
        En plus de cela je voudrai que dans la meme methode une valeur cliceurope soit stocke.
        lorsque je clic sur europe.

        Desoler pas facile a explique.
        • Partager sur Facebook
        • Partager sur Twitter
          14 octobre 2012 à 13:16:49

          Bonjour je vient au nouvelle.

          Plutôt que de faire comme le code précédent j'ai décidé de compte les type séparément et de faire une somme a la fin.

          Mais voila le problème rien ne s'affiche dans le bouton totaleuropes

          voici mon code java :

          package com.example.leclerc;
          
          import android.os.Bundle;
          import android.app.Activity;
          import android.view.Menu;
          import android.view.View;
          import android.widget.Button;
          import android.widget.ImageButton;
          
          public class MainActivity extends Activity {
          	Button btn;
          	ImageButton imgbtn;
          	int totalpalette = 0;
          	int europes = 0;
              @Override
              public void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.activity_main);
                  // DEBUT EUROPES
                  // recuperation des europes
                  imgbtn = (ImageButton)findViewById(R.id.imageeuropes);
                  btn = (Button)findViewById(R.id.totaleuropes);
                  // Ecoute les clic
                  imgbtn.setOnClickListener(new View.OnClickListener() {
          			public void onClick(View v) {
          				// TODO Stub de la méthode généré automatiquement
          				europes++;
          				btn.setText(""+ europes +"");
          			}
          		
          		});
                  // FIN EUROPES
                  
                  // DEBUT TOTAL
                  btn = (Button)findViewById(R.id.totalpalette);
                  btn.setText(""+ europes +"");
                  // FIN TOTAL
                  
                  // DEBUT METRAGE
                  
                  // FIN METRAGE
                  
          
              }
          
          
          	@Override
              public boolean onCreateOptionsMenu(Menu menu) {
                  getMenuInflater().inflate(R.menu.activity_main, menu);
                  return true;
              }
          }
          


          Voici mon xml :

          <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:clickable="true"
              android:onClick="clear all" >
          
              <ImageButton
                  android:id="@+id/imageeuropes"
                  android:layout_width="75dp"
                  android:layout_height="75dp"
                  android:layout_alignParentLeft="true"
                  android:layout_alignParentTop="true"
                  android:scaleType="fitCenter"
                  android:src="@drawable/europes" />
          
              <Button
                  android:id="@+id/totaleuropes"
                  android:layout_width="75dp"
                  android:layout_height="50dp"
                  android:layout_alignParentLeft="true"
                  android:layout_below="@+id/imageeuropes"
                  android:clickable="false"
          	 />
          
              <Button
                  android:id="@+id/totalpalette"
                  android:layout_width="75dp"
                  android:layout_height="50dp"
                  android:layout_alignParentBottom="true"
                  android:layout_alignParentLeft="true"
                  android:clickable="false"
                  android:focusable="false"
                  android:linksClickable="false"
          	/>
          
          </RelativeLayout>
          


          Je ne comprend pas pourquoi il m'affiche le nombre de clic dans totalpalette et pas dans totaleuropes

          Si quelqu’un a une petite idée ?

          Merci de l’intérêt porté a mon post.
          • Partager sur Facebook
          • Partager sur Twitter
            15 octobre 2012 à 9:22:32

            Bonjour,

            Je n'ai pas vraiment compris l'intelligence que tu tentes d'intégrer dans ton projet mais je peux t'expliquer ce que tu fais dans ton code.

            Dans ton XML, tu as créé 3 widgets avec comme identifiant : imageeuropes, totaleuropes et totalpalette. Tu peux donc accéder à ces 3 boutons dont un qui n'est pas cliquable (le dernier).

            Dans ton Activity, tu dis que ton instance btn est d'abord totaleuropes et puis tu le changes pour totalpalette. Du coup, lorsque tu cliqueras sur le bouton que tu as assigné pour imageeuropes, il modifiera totalpalette et non totaleuropes. Je suppose que c'est là que tu t'emmêles.

            Astuce : une bonne pratique est de désérialiser ton fichier XML (setContentView(...)) puis de récupérer dans des instances tes widgets en début de programme. Ca te permet de bien structurer ton code et de ne pas te tromper en instancier plusieurs fois un même widget (findViewById(...) est une instruction couteuse.


            Il faut absolument donner des noms de variable "parlant" pour pas t'embrouiller dans ton code.
            • Partager sur Facebook
            • Partager sur Twitter
            Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
              15 octobre 2012 à 11:30:18

              Bonjour, Merci pour cette réponse.

              si je creer une activité pour chaque type de palette cela marchera aussi ?
              • Partager sur Facebook
              • Partager sur Twitter

              [ANDROID] Plusieurs variable

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown