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 :

Ajout variables privées


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut Ajout variables privées
    Bonjour,

    Je vous écris car je suis perdu et débutant.
    Je suis actuellement un tutoriel pour créer une application de location de DVD livre "Développez une application Android". dans le bouquin on me dit ceci
    Dans la classe Policier, rajoutez deux variables privées, l'une pour ListView et l'autre pour FilmAdapter et nommez-les respectivement listSerie et adapterFilm
    .
    Je ne sais pas comment faire pouvez-vous me dépanner
    Merci.

    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
    package com.example.menu;
     
    Policier.java
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
     
     
    public class Policier extends Activity {
     
    	private String filmPolicier[] = {
    			                         "Kill Bill - vol 1",
    			                         "Kill Bill - vol 2",
    			                         "Otage",
    			                         "Da Vinci Code",
    			                         "36 quai des Orfèvres",
    			                         "Mistic River",
    									};
    	/*private String adapterFilm{
    		adapterFilm = new FilmAdapter(this, R.layout.ligne);
    		adapterFilm.add(film);
    		listPolicier.setAdapter(adapterFilm);*/
     
     
     
    	  @Override
      protected void onCreate(Bundle savedInstanceState) {
    	  super.onCreate(savedInstanceState);
    	  setContentView(R.layout.policier);
    	  final ArrayAdapter<String> adapterList = new
    			  ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, filmPolicier);
     
    	  ListView listPolicier = (ListView)findViewById(R.id.ListView01);
    	  listPolicier.setAdapter(adapterList);
    	  listPolicier.setOnItemClickListener(new OnItemClickListener() {
    		    public void onItemClick(AdapterView<?> adapter,
    View arg1, int position, long arg3) {
    		    	Log.i("ENI", "Position" + String.valueOf(position));
    		    	String titre = adapterList.getItem(position);
    		    	Log.i("ENI", "Titre" + titre);
     
     
     
    			}
    	  });
      }
    }
    FilmAdapter.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
    32
    33
    34
    35
    36
    37
    38
    package com.example.menu;
     
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.TextView;
     
    public class FilmAdapter extends ArrayAdapter<Film>{
    	 public FilmAdapter(Context context, int textViewResourceId){
    		  super(context, textViewResourceId);
     
    	 }
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    		View result = convertView;
    		if (convertView == null)
    		{
    	 result = LayoutInflater.from(getContext()).inflate(R.layout.ligne,  parent, false);
     
    		}
    	 Film film =getItem(position);
    	 TextView titre = (TextView)result.findViewById(R.id.Titre);
    	 titre.setText(film.getTitre());
    	 TextView realisateur = (TextView)result.findViewById(R.id.Realisateur);
    	 titre.setText(film.getRealisateur());
    	 ImageView imageview = (ImageView)result.findViewById(R.id.LigneImg);
    	   imageview.setImageRessource( film.getImg());
    	   return result;
    	   public void updateData(){
    		   this.notifyDataSetChanged();
    	   }
     
    	}
     
     
    }
    -"Mais ici on attend pas jusqu'au Dimanche ?"

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private ListView ta_listview;
    private FilmAdapter ton_filmAdapter;
    Et ta classe devient :
    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
    package com.example.menu;
     
    Policier.java
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
     
     
    public class Policier extends Activity {
     
            //pour la listView
            private ListView ta_listview;
            //Et pour le FilmAdapter
            private FilmAdapter ton_filmAdapter;
     
    	private String filmPolicier[] = {
    			                         "Kill Bill - vol 1",
    			                         "Kill Bill - vol 2",
    			                         "Otage",
    			                         "Da Vinci Code",
    			                         "36 quai des Orfèvres",
    			                         "Mistic River",
    									};
    	/*private String adapterFilm{
    		adapterFilm = new FilmAdapter(this, R.layout.ligne);
    		adapterFilm.add(film);
    		listPolicier.setAdapter(adapterFilm);*/
     
     
     
    	  @Override
      protected void onCreate(Bundle savedInstanceState) {
    	  super.onCreate(savedInstanceState);
    	  setContentView(R.layout.policier);
    	  final ArrayAdapter<String> adapterList = new
    			  ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, filmPolicier);
     
    	  ListView listPolicier = (ListView)findViewById(R.id.ListView01);
    	  listPolicier.setAdapter(adapterList);
    	  listPolicier.setOnItemClickListener(new OnItemClickListener() {
    		    public void onItemClick(AdapterView<?> adapter,
    View arg1, int position, long arg3) {
    		    	Log.i("ENI", "Position" + String.valueOf(position));
    		    	String titre = adapterList.getItem(position);
    		    	Log.i("ENI", "Titre" + titre);
     
     
     
    			}
    	  });
      }
    }
    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Merci Christian, mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private ListView listPolicier.setAdapter(adapterFilm);
     
     
    private FilmAdapter adapterFilm = new FilmAdapter(this, R.layout.ligne);
    	adapterFilm.add(film);
    -"Mais ici on attend pas jusqu'au Dimanche ?"

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Tu fais un peu du n'importe quoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ListView listPolicier.setAdapter(adapterFilm);
    Tu utilises une view déclarée dans le fichier xml sans l'avoir inflater. Tu auras surement une exception du genre NullPointerException...

    ce qu'il faut faire, c'est commencer par inflater ta listview (déjà déclarer auparavant) avant de l'utiliser. Un truc du genre :
    listPolicier = (ListView)findViewById(R.id.ListView01);
    Ensuite, tu pourras affecter l'adaptateur tranquillement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Création de l'adaptateur
    adapterFilm = new FilmAdapter(this, R.layout.ligne);
    //Affectation dans la listview
    listPolicier.setAdapter(adapterFilm);
    PS: Je ne vois pas la méthode "add()" que tu appelles ici dans la classe "FilmAdapter"
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  5. #5
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Que n'arrive tu pas à faire ?



    Sinon le code demandé au début est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            //pour la listView
            private ListView listSerie  ;
            //Et pour le FilmAdapter
            private FilmAdapter adapterFilm;
    Les noms ayant une importance pour l'énoncé d'après ce que j'ai compris.

    Commentaire sur le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ListView listPolicier.setAdapter(adapterFilm);
    Cela ne compilera pas ! Tu fait deux choses en même temps ! Tu déclare un attribut private ListView, le compilateur attends donc un nom et potentiellement une affectation avec un =. Or tu lui donne une méthode a exécuter, à savoir setAdapter.
    Cela au moins pour cette raison :
    listPolicier est en cours de déclaration et n'a jamais été affecté, sa valeur est donc obligatoirement null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private FilmAdapter adapterFilm = new FilmAdapter(this, R.layout.ligne);
    	adapterFilm.add(film);
    La première ligne est correct. Cependant la seconde ligne ne va pas compilé. Car cette instruction n'est pas dans un bloc de code. Le programme ne sait donc pas quand l'exécuter.
    Il faut donc déplacer cette ligne dans une méthode !


    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Ok les gars je vous écris textuellement ce qu'il y a dans le bouquin:
    Dans la classe Policier, rajoutez deux variables privées, l'une pour ListView et l'autre pour FilmAdapter et nommez-les respectivement listPolicier et adapterFilm
    Suppprimez tout ce qui concerne l'ArrayListFilm qui n'est plus utile

    Il ne reste à initialiser l'adapterFilm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adapterFilm = new FilmAdapter(this, R.layout.ligne);
    Puis à remplir en lui passant les informations à chacun des films lors de la lecture du fichier XML:
    Et enfin à définir l'adaptateur appelé par le ListView:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listPolicier.setAdaptater(adapterFilm);
    ligne.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
    <?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="horizontal" >
     
        <ImageView
            android:id="@+id/Lignelmg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/KillBill" />
     
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
     
            <TextView
                android:id="@+id/Titre"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="TextView" />
     
            <TextView
                android:id="@+id/Realisateur"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="TextView" />
     
        </LinearLayout>
     
    </LinearLayout>
    Est-ce que je doit faire de même pour les autres Documentaire Série et Action?
    -"Mais ici on attend pas jusqu'au Dimanche ?"

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Désolé d'insister mais en faite je voulais insérer une ImageView pour chaque film.
    -"Mais ici on attend pas jusqu'au Dimanche ?"

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    listPolicier = (ListView)findViewById(R.id.ListView01);
    Merci A TOUS pour vos conseils j'ai trouvé mon erreur enfin mes erreurs.

    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
    package com.example.menu;
     
     
     
    import org.xmlpull.v1.XmlPullParser;
     
    import data.menu.Film;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ListView;
     
     
    public class Serie extends Activity {
     
    	 private ListView listSerie;
    	 private FilmAdapter adapterFilm;
     
     
     
     
    	  @Override
     
      protected void onCreate(Bundle savedInstanceState) {
    		  super.onCreate(savedInstanceState);
    		  adapterFilm = new FilmAdapter(this, R.layout.ligne);
     
     
    	  setContentView(R.layout.serie);
     
     
    	  try{
    		   XmlPullParser xmlPullParser=getResources() .getXml(R.xml.serie);
    		while (xmlPullParser.getEventType()!=XmlPullParser.END_DOCUMENT){
    		  if (xmlPullParser.getEventType()==XmlPullParser.START_TAG) {
     
    			  if (xmlPullParser.getName() .equals("dvd")) {
     
    				  Film film = new Film();
     
    				  film.setCat(xmlPullParser.getAttributeValue(0));
    				  Log.i("ENI", "Cat = " + film.getCat());
    				  film.setTitre(xmlPullParser.getAttributeValue(1));
    				  Log.i("ENI", "Titre = " + film.getTitre());
    				  film.setRealisateur(xmlPullParser.getAttributeValue(2));
    				  Log.i("ENI", "Real = " + film.getRealisateur());
    				  String path = getPackageName() + ":drawable/" + 
    				  xmlPullParser.getAttributeValue(3);
    				  int resID = getResources().getIdentifier(path, null, null);
    				  film.setImg(resID);
    				  Log.i("ENI", "Img = " + String.valueOf(film.getImg()));
     
    				  adapterFilm.add(film);
    			  }
    			  listSerie = (ListView)findViewById(R.id.ListSerie);  
    			  listSerie.setAdapter(adapterFilm);
     
    		  }
    			xmlPullParser.next();
    		}
    	  } catch (Exception e){
    		  Log.i("ENI", "Erreur = " + e.getMessage());
    			e.printStackTrace();	
     
    	  }  
    	  }
    }
    -"Mais ici on attend pas jusqu'au Dimanche ?"

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

Discussions similaires

  1. Accès à une variable privée
    Par jobe dans le forum C++
    Réponses: 2
    Dernier message: 10/11/2007, 20h46
  2. [POO] Problème d'accès à une variable privée
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 21h43
  3. Réponses: 9
    Dernier message: 09/08/2006, 13h39
  4. [debutant]problème d'utilisation de variable privée
    Par Thordax dans le forum Débuter
    Réponses: 2
    Dernier message: 17/05/2006, 09h34

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