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 :

Récupération des controles XML


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Points : 33
    Points
    33
    Par défaut Récupération des controles XML
    Bonjour,
    Je commence dernierement à m'interesser au developpement mobile, et je suis face a un probleme dans mon projet.
    Il s'agit d'une application de vente de machines et capsules à cafés.
    Je voudrais changer la liste des couleurs suivant la machine choisie.
    Pour ce faire, j'ai essayé de récupérer chaque imageView dans mon code et de changer sa source, mais je bloque actuellement.
    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            	for(int i=0; i<listeCouleurs.length; i++)
            	{
            		//on va prendre la couleur qui existe deja dans chaque case
            		couleurTemp=listeCouleurs[i];
            		String uri = "drawable/"+couleurTemp;
     
                 int imageResource = getResources().getIdentifier(uri, null, getPackageName());
                 Drawable image = getResources().getDrawable(imageResource);
                 listeDrawble.add(image);
    Maintenant le probleme persiste si je veut itérer sur chaque imageView par exple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imageView+i=couleurTemp;
    Ceci ne marche pas, j'ai cherché dans la piste des adapters mais je n'ai pas trouvé un problème similaire au mien ...

    Merci de bien vouloir m'aider.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 168
    Points : 212
    Points
    212
    Par défaut
    imageView+i = couleurTemp

    imageView c'est quoi ?
    couleurTemp c'est quoi ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par pitbull78 Voir le message
    imageView+i = couleurTemp

    imageView c'est quoi ?
    couleurTemp c'est quoi ?
    imageView1, imageView2 ..., sont des couleurs (noir=imageViw1, rouge=imageView2 ...)
    Et couleurTemp, contient la couleur actuelle dans la liste des couleurs possibles pour une machine.
    Par exemple: j'ai la machine1 lavazza, qui a pour couleurs (noir, rouge, blanc)
    en itérant avec la boucle (for) chaque fois, j'ai la couleur[i] (noir puis rouge , enfin blanc).
    Mais le problème persiste quand je veut récupérer les imageView de mon xml avec une itération...
    voila un aperçu de mon fichier xml.
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
     
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
     
            <ImageView
                android:id="@+id/imageviewchoixmachine"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginTop="114dp"
                android:src="@drawable/darkm1" />
     
     
            <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="38dp" >
            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="200dp"
                android:layout_height="100dp"
    			android:layout_gravity="right">
     
    			<ImageView
                android:id="@+id/noir"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/dark" />
     
    			<ImageView
                android:id="@+id/rouge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/red" />   
     
                <ImageView
                android:id="@+id/fuch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/fuchsiya" />  
     
               	<ImageView
                android:id="@+id/blanc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/white" />
     
    			<ImageView
                android:id="@+id/violet"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/violet" />
     
    			<ImageView
                android:id="@+id/vert"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="114dp"
                android:src="@drawable/green" />
     
     
            </TableRow>
     
            </TableLayout>
     
        </RelativeLayout>
     
    </LinearLayout>
    et le voila en mode graphique:

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    Je suis arrivé à trouver une solution et la voila pour ceux qui ont le meme probleme.
    J'ai crée simplement mon layout à partir du code java, et j'ai pu ainsi le personnaliser.
    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
                ImageView ii=(ImageView)findViewById(R.id.imageView1);
                LinearLayout ll= (LinearLayout)findViewById(R.id.linear1);
                ll.setOrientation(LinearLayout.HORIZONTAL);
                ImageView tv[] = new ImageView[listeCouleurs.length];
                final ImageView image2 = new ImageView(this);
                LinearLayout ll2 = (LinearLayout)findViewById(R.id.linear2);
                image2.setImageResource(R.drawable.machine1white);
                String uri="";
                LayoutParams fpfp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
     
                ll.addView(image2);
                for(int i=0;i<listeCouleurs.length;i++)
        		{
        			tv[i]= new ImageView(this);
            		couleurTemp=listeCouleurs[i];
            		uri = "drawable/"+couleurTemp;
            		String uri2="drawable/machine1"+couleurTemp;
            		Log.i("Couleur = ", couleurTemp);
                    int imageResource = getResources().getIdentifier(uri, null, getPackageName());
                    int imageResource2 =  getResources().getIdentifier(uri2, null, getPackageName());
                    image = getResources().getDrawable(imageResource);
     
        			tv[i].setImageDrawable(image);
        			image=getResources().getDrawable(imageResource2);
        			ll.addView(tv[i], fpfp);
     
        		}
    Maisla un autre probleme se présente, comment y appliquer les actionListeners ?

    Merci

  5. #5
    Membre habitué
    Homme Profil pro
    En rupture avec la societé
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : En rupture avec la societé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 194
    Points
    194
    Par défaut
    salut
    si je comprend bien maintenant tu cherche a appliqué une sélection a la couleur ?
    dans un premier tu aurais du peu être faire un test comme ceci.
    Il est quand même mieux de bien séparer les vues(widget) de ton code. il existe biensur des cas ou cela n'est pas possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <ImageView
                ...
                android:clickable="true"  
                android:onClick="imageClick"
                android:src="@drawable/darkm1" />
    <ImageView
                ...
                android:clickable="true"  
                android:onClick="imageClick"
                android:src="@drawable/darkm2" />
    et une méthode dans ton code java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Test extends Activity {  
      ........  
      ........  
     public void imageClick(View view) {  
      //implemente ton click image
      //rien ne t'empêche d'effectué une par nom pour ton traitement
     
     }

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par burndev Voir le message
    salut
    si je comprend bien maintenant tu cherche a appliqué une sélection a la couleur ?
    dans un premier tu aurais du peu être faire un test comme ceci.
    Il est quand même mieux de bien séparer les vues(widget) de ton code. il existe biensur des cas ou cela n'est pas possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <ImageView
                ...
                android:clickable="true"  
                android:onClick="imageClick"
                android:src="@drawable/darkm1" />
    <ImageView
                ...
                android:clickable="true"  
                android:onClick="imageClick"
                android:src="@drawable/darkm2" />
    et une méthode dans ton code java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Test extends Activity {  
      ........  
      ........  
     public void imageClick(View view) {  
      //implemente ton click image
      //rien ne t'empêche d'effectué une par nom pour ton traitement
     
     }
    Non mais ma vue ainsi que plusieurs autres layout sont crée dans mon code JAVA et non dans xml.
    Voila le fichier XML.
    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linear1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
     
     
        <LinearLayout
            android:id="@+id/linear2"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="left" >
     
        </LinearLayout>
     
    </LinearLayout>
    donc les imageView sont crée dans java, c'est la ou mon probleme se pose avec les actionListeners

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Mdr j'en ai trouvé la solution aussi.
    La voila pour ceux qui en auront besoin:
    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
                for(int i=0;i<listeCouleurs.length;i++)
        		{
        			tv[i]= new ImageView(this);
            		couleurTemp=listeCouleurs[i];
            		uri = "drawable/"+couleurTemp;
            		String uri2="drawable/machine1"+couleurTemp;
            		Log.i("Couleur = ", couleurTemp);
                    int imageResource = getResources().getIdentifier(uri, null, getPackageName());
                    int imageResource2 =  getResources().getIdentifier(uri2, null, getPackageName());
                    image = getResources().getDrawable(imageResource);
     
        			tv[i].setImageDrawable(image);
        			ll.addView(tv[i], fpfp);
        			image=getResources().getDrawable(imageResource2);
        			creerAction(image, tv[i]);
        		}
    et la fonction creerAction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	private void creerAction(final Drawable imagedraw, final ImageView imageView)
    	{
    		imageView.setOnClickListener(new OnClickListener() {
     
    			public void onClick(View arg0) {
        			image2.setImageDrawable(imagedraw);
     
    			}
    		});
    	}

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

Discussions similaires

  1. Récupération des données XML
    Par Mickael33 dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 02/08/2009, 10h33
  2. Récupération des noeuds XML :'(
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2008, 18h15
  3. [SimpleXML] Récupération des données XML
    Par squalito dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/05/2006, 14h22
  4. Récupération des éléments d'un fichier xml en flux retour
    Par opeo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/11/2005, 10h33
  5. Réponses: 2
    Dernier message: 10/05/2005, 15h54

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