Bonjour,
Je voudrais réclamer de l'aide de votre part.
Il s'agit d'une listview étendue que j'ai mise en place sur Eclipse. J'essaye depuis un bon moment de mettre pour chaque ligne du menu une icone différente.
Je pense avoir trouvé la méthode mais les icônes semblent changer de place dès que j'appuie sur "suite de la liste". Comme je vois aussi des icônes qui se répètent et d'autres qui ne s'affichent pas, alors que j'ai vérifié d'avoir déclaré toutes mes icônes.
voici mon code :
Main.java (la classe Main l'activité principale de l'application, qui fait appelle à une listview personnalisée)
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 package com.formation.ExpandableListview; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; public class Main extends Activity { private ListView mListView; private ExpandableAdapterBis mExpandableAdapter; private int tabicons[]=new int[]{R.id.icon1, R.id.icon2, R.id.icon3, R.id.icon4, R.id.icon5, R.id.icon6, R.id.icon7, R.id.icon8, R.id.icon9, R.id.icon10, R.id.icon11, R.id.icon12, R.id.icon13, R.id.icon14, R.id.icon15, R.id.icon16}; private String[] mArray=new String[] { "Les bases de la prononciation", "La transcription", "Faire connaissance", "demander son chemin", "L'argent", "Séjourner à l'hôtel", "Les restaurants et les repas", "Faire ses achats", "Sortir en ville", "Les moyens de transport", "Les cas d'urgence", "Les festivités locales", "Les expressions qui font 'tilt'", "Proverbes", "Imagerie", "Jeu de vocabulaire" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mListView=(ListView)findViewById(R.id.expandable_listview); mExpandableAdapter = new ExpandableAdapterBis(this, mArray, 10,tabicons); mListView.setAdapter(mExpandableAdapter); } }
ExpandableAdapterBis.java (ma listview personnalisée, constituée d'une icône, d'un textview, et d'un bouton)
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
83
84
85
86
87
88
89 package com.formation.ExpandableListview; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class ExpandableAdapterBis extends BaseAdapter implements OnClickListener{ private String [] mArray; private Context mContext; private int pagination; private int current_page; private LayoutInflater mInflater; private int [] tabicons; public ExpandableAdapterBis(Context _context, String[] _array, int _pagination, int[] icons) { mArray=_array; mContext=_context; pagination=_pagination; current_page=1; mInflater =LayoutInflater.from(_context); tabicons=icons; } private static class ViewHolder { public TextView text; public ImageView icon1; public Button button; } public int getCount() { return Math.min(pagination*current_page,mArray.length); } public Object getItem(int position) { return mArray[position]; } public long getItemId(int position) { // TODO Auto-generated method stub return 0; } public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.button = (Button) convertView.findViewById(R.id.button); holder.text = (TextView) convertView.findViewById(R.id.text); holder.icon1 = (ImageView) convertView.findViewById(tabicons[position]); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } if(position==pagination*current_page-1) { holder.button.setVisibility(View.VISIBLE); holder.text.setVisibility(View.GONE); holder.icon1.setVisibility(View.GONE); holder.button.setOnClickListener(this); } else { holder.button.setVisibility(View.GONE); holder.text.setVisibility(View.VISIBLE); holder.icon1.setVisibility(View.VISIBLE); holder.text.setText(mArray[position]); holder.icon1.findViewById(tabicons[position]); } return convertView; } public void onClick(View v) { current_page++; notifyDataSetChanged(); } }
item.xml (le fichier .xml définissant les icônes )
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/icon1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon1" /> <ImageView android:id="@+id/icon2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon2" /> <ImageView android:id="@+id/icon3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon3" /> <ImageView android:id="@+id/icon4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon4" /> <ImageView android:id="@+id/icon5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon5" /> <ImageView android:id="@+id/icon6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon6" /> <ImageView android:id="@+id/icon7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon7" /> <ImageView android:id="@+id/icon8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon8" /> <ImageView android:id="@+id/icon9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon9" /> <ImageView android:id="@+id/icon10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon10" /> <ImageView android:id="@+id/icon11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon11" /> <ImageView android:id="@+id/icon12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon12" /> <ImageView android:id="@+id/icon13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon13" /> <ImageView android:id="@+id/icon14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon14" /> <ImageView android:id="@+id/icon15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon15" /> <ImageView android:id="@+id/icon16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@drawable/icon16" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:textSize="15sp" android:visibility="gone" android:textColor="#ccffff" android:textStyle="bold" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Suite..." android:visibility="gone" android:textStyle="bold" /> </LinearLayout>
Partager