Bonjour,
je suis actuellement un tutoriel dans un livre pour développer une application; je vous écris textuellement ce qu'il y a dans le bouquin:
Dans la classe Serie, rajoutez deux variables privées, l'une pour ListView et l'autre pour FilmAdapter et nommez-les respectivement listSerie 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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part adapterFilm.add(film);
Et enfin à définir l'adaptateur appelé par le ListView:
Code : Sélectionner tout - Visualiser dans une fenêtre à part listSerie.setAdaptater(adapterFilm);
Le problème est que j'ai souligné en rouge adapterFilm dans : listSerie.setAdapter(adapterFilm); J'ai comme ERREUR "Syntax error on token(s), misplaced construct(s)
Syntax error on token "adapterFilm", Variable Declaratorid expected after this token.
MERCI.
Serie.java
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 package com.example.menu; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParser; import data.menu.Film; 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 Serie extends Activity { private ListView listSerie; private FilmAdapter adapterFilm = new FilmAdapter(this, R.layout.ligne); listSerie.setAdapter(adapterFilm); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.serie); ArrayList<Film> listFilm = new ArrayList<Film>(); Log.i("ENI", "Vue 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())); listFilm.add(film); adapterFilm.add(film); } } xmlPullParser.next(); } } catch (Exception e){ Log.i("ENI", "Erreur = " + e.getMessage()); e.printStackTrace(); } } }
res/xml/serie.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 package com.example.menu; import data.menu.Film; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; 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.setImageResource( film.getImg()); return result; } public void updateData(){ this.notifyDataSetChanged(); } }
src/data.menu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <resource> <dvd cat="serie" titre="the shield" realisateur="shawn ryan" img="theshield"></dvd></resource>
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
33
34
35
36 package data.menu; public class Film { private String strCat = ""; private String strTitre = ""; private String strRealisateur = ""; private int iImg = 0; public Film() { } public void setCat (String cat){ this.strTitre = cat; } public void setTitre (String titre){ this.strTitre = titre; } public void setRealisateur (String realisateur){ this.strRealisateur = realisateur; } public void setImg(int img){ this.iImg = img; } public String getCat(){ return this.strCat; } public String getTitre(){ return this.strTitre; } public String getRealisateur(){ return this.strRealisateur; } public int getImg(){ return this.iImg; } }
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/LigneImg" 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>
Partager