Bonjour à tous,
voici ce que réalise mon code:
1- Il extrait le contenu d'un fichier txt vers une arrylist, qui est une suite de chemin de fichiers(listeFichiers)
2- Cette liste de de fichiers est ensuite utilisée pour remplir une autre arraylist(gridArray) laquelle va se décomposer en item,string.
* item est un id d'image(icone) du drawable ou une thumbnail selon le type d'extension du fichier(id thumbnail fournit par deux méthodes, getVideoIdFromFilePath() et getImageIdFromFilePath())
* String le nom du fichier
3- En ressort un Gridview avec icones ou thumbnail et non de fichier dans chaque cellule.
MainActivity:
la class qui gère les items:
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245 package com.example.gridviewproject; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import android.widget.GridView; public class MainActivity extends Activity { String racine; String fichier; String line; private String TAG = "test"; int i =0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ArrayList<String> listeFichiers = new ArrayList<String>(); File mCurrentFile = Environment.getExternalStorageDirectory(); racine = mCurrentFile.getPath(); fichier = (racine + "/fichier.txt"); FileReader fr = null; try { fr = new FileReader(fichier); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader inFile = new BufferedReader (fr); try{ while ((line = inFile.readLine()) != null) { listeFichiers.add(line); } } catch (IOException e) { System.out.println (e.getMessage()); e.printStackTrace(); } finally { try { inFile.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } GridView gridView1; GridViewAdapter customGridAdapter; ArrayList<Item> gridArray = new ArrayList<Item>(); final Bitmap mp3Icon = BitmapFactory.decodeResource(this.getResources(), R.drawable.mp3); final Bitmap zipIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.zip); final Bitmap mp4Icon = BitmapFactory.decodeResource(this.getResources(), R.drawable.mp4); final Bitmap txtIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.txt); final Bitmap jpgIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.jpg); final Bitmap aviIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.avi); final Bitmap pdfIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.pdf); final Bitmap rarIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.rar); final Bitmap docIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.doc); final Bitmap pngIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.png); final Bitmap gifIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.gif); final Bitmap wmaIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.wma); final Bitmap troisgpIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.troisgp); final Bitmap mkvIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.mkv); final Bitmap movIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.mov); final Bitmap wmvIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.wmv); final Bitmap m4aIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.m4a); final Bitmap htmlIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.html); final Bitmap xmlIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.xml); final Bitmap exeIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.exe); final Bitmap bmpIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.bmp); final Bitmap autreIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.autre); final Bitmap apkIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.apk); final int end = (listeFichiers.size()); while (i < end){ /** try { Thread.sleep(2000); } catch (InterruptedException exception) { exception.printStackTrace(); }*/ String chemin = ("/storage" + (listeFichiers.get(i))); Uri Chemin = Uri.parse(chemin); File cheminPath = new File(Chemin.getPath()); String fileName = chemin.substring(chemin.lastIndexOf("/")+1); final String FILEType = fileName.substring(fileName.lastIndexOf(".")+1); final String fileType = FILEType.toLowerCase(); if (fileType.equals("mp3")){ gridArray.add(new Item(mp3Icon,fileName)); } else if (fileType.equals("zip")){ gridArray.add(new Item(zipIcon,fileName)); } else if (fileType.equals("pdf")){ gridArray.add(new Item(pdfIcon,fileName)); } else if (fileType.equals("rar")){ gridArray.add(new Item(rarIcon,fileName)); } else if (fileType.equals("doc") || fileType.equals("docx") ){ gridArray.add(new Item(pdfIcon,fileName)); } else if (fileType.equals("txt")){ gridArray.add(new Item(txtIcon,fileName)); } else if (fileType.equals("jpg") || fileType.equals("png") || fileType.equals("gif") ){ long idImage = getImageIdFromFilePath(chemin, getContentResolver()); Bitmap thumbBitmap = MediaStore.Images.Thumbnails.getThumbnail( getContentResolver(), idImage, MediaStore.Images.Thumbnails.MINI_KIND, (BitmapFactory.Options) null ); if ((thumbBitmap == null) && (fileType.equals("jpg")) ){ gridArray.add(new Item(jpgIcon,fileName)); } else if ((thumbBitmap == null) && (fileType.equals("png")) ){ gridArray.add(new Item(pngIcon,fileName)); } else if ((thumbBitmap == null) && (fileType.equals("gif")) ){ gridArray.add(new Item(gifIcon,fileName)); } else{ gridArray.add(new Item(thumbBitmap,fileName)); } } else if (fileType.equals("avi") || fileType.equals("mp4") || fileType.equals("mkv") || fileType.equals("3gp")){ long idVideo = getVideoIdFromFilePath(chemin, getContentResolver()); Bitmap thumbBitmap = MediaStore.Video.Thumbnails.getThumbnail( getContentResolver(), idVideo, MediaStore.Video.Thumbnails.MINI_KIND, (BitmapFactory.Options) null ); //Bitmap thumbBitmap = ThumbnailUtils.createVideoThumbnail(((File) cheminPath).getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); if ((thumbBitmap == null) && (fileType.equals("avi")) ){ gridArray.add(new Item(aviIcon,fileName)); } else if ( (thumbBitmap == null) &&(fileType.equals("mp4")) ){ gridArray.add(new Item(mp4Icon,fileName)); } else if ((thumbBitmap == null) &&(fileType.equals("3gp")) ){ gridArray.add(new Item(troisgpIcon,fileName)); } else if ((thumbBitmap == null) &&(fileType.equals("mkv")) ){ gridArray.add(new Item(mkvIcon,fileName)); } else{ gridArray.add(new Item(thumbBitmap,fileName)); } } else if (fileType.equals("apk")){ gridArray.add(new Item(apkIcon,fileName)); } else { gridArray.add(new Item(autreIcon,fileName)); } i=i+1; } gridView1 = (GridView) findViewById(R.id.gridView1); customGridAdapter = new GridViewAdapter(this, R.layout.row_grid, gridArray); gridView1.setAdapter(customGridAdapter); } private long getImageIdFromFilePath(String filePath, ContentResolver contentResolver) { long imageId; Log.d(TAG,"Loading file " + filePath); Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; Log.d(TAG,"ImageUri = " + imageUri.toString()); String[] projection = {MediaStore.Images.ImageColumns._ID}; Cursor cursor = contentResolver.query(imageUri, projection, MediaStore.Images.ImageColumns.DATA + " LIKE ?", new String[] { filePath }, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(projection[0]); imageId = cursor.getLong(columnIndex); Log.d(TAG,"Image ID is " + imageId); cursor.close(); return imageId; } private long getVideoIdFromFilePath(String filePath, ContentResolver contentResolver) { long videoId; Log.d(TAG,"Loading file " + filePath); Uri videosUri = MediaStore.Video.Media.getContentUri("external"); Log.d(TAG,"videosUri = " + videosUri.toString()); String[] projection = {MediaStore.Video.VideoColumns._ID}; // TODO This will break if we have no matching item in the MediaStore. Cursor cursor = contentResolver.query(videosUri, projection, MediaStore.Video.VideoColumns.DATA + " LIKE ?", new String[] { filePath }, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(projection[0]); videoId = cursor.getLong(columnIndex); Log.d(TAG,"Video ID is " + videoId); cursor.close(); return videoId; } }
la class GridViewadapter:
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.gridviewproject; import android.graphics.Bitmap; /** * * @author manish.s * */ public class Item { Bitmap image; String title; public Item(Bitmap image, String title) { super(); this.image = image; this.title = title; } public Bitmap getImage() { return image; } public void setImage(Bitmap image) { this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
Ce code fonctionne parfaitement et remplit son office.
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 package com.example.gridviewproject; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; /** * * @author manish.s * */ public class GridViewAdapter extends ArrayAdapter<Item> { Context context; int layoutResourceId; ArrayList<Item> data = new ArrayList<Item>(); public GridViewAdapter(Context context, int layoutResourceId, ArrayList<Item> data) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; RecordHolder holder = null; if (row == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); holder = new RecordHolder(); holder.txtTitle = (TextView) row.findViewById(R.id.item_text); holder.imageItem = (ImageView) row.findViewById(R.id.item_image); holder.checkBox = (CheckBox) row.findViewById(R.id.suppression); row.setTag(holder); } else { holder = (RecordHolder) row.getTag(); } holder.checkBox.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub CheckBox cb = (CheckBox) v; //int id = cb.getId(); //Toast.makeText(this,"Enfant1 Annuler", Toast.LENGTH_SHORT).show(); /** if (thumbnailsselection[id]){ cb.setChecked(false); thumbnailsselection[id] = false; } else { cb.setChecked(true); thumbnailsselection[id] = true; }*/ } }); Item item = data.get(position); holder.txtTitle.setText(item.getTitle()); holder.imageItem.setImageBitmap(item.getImage()); return row; } class RecordHolder { TextView txtTitle; ImageView imageItem; CheckBox checkBox; } }
Mais dans mon projet final je voudrais que les cellules du gridview s'affichent une par une en fonction de l'avancement d'une tache (le téléchargement de ces chemins de fichiers contenu dans le fichier txt de départ)
J'envisageais de modifier le code comme suit :
MainActivity:
Le soucis semble se situer sur le context de l'activité principale et ca coince avec :
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283 package com.example.gridviewproject; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import android.widget.GridView; public class MainActivity extends Activity { String racine; String fichier; String line; private String TAG = "test"; int i =0; final ArrayList<String> listeFichiers = new ArrayList<String>(); GridView gridView1; GridViewAdapter customGridAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File mCurrentFile = Environment.getExternalStorageDirectory(); racine = mCurrentFile.getPath(); fichier = (racine + "/fichier.txt"); FileReader fr = null; try { fr = new FileReader(fichier); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader inFile = new BufferedReader (fr); try{ while ((line = inFile.readLine()) != null) { listeFichiers.add(line); } } catch (IOException e) { System.out.println (e.getMessage()); e.printStackTrace(); } finally { try { inFile.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } new Thread(new GridViewThread()).start(); } private long getImageIdFromFilePath(String filePath, ContentResolver contentResolver) { long imageId; Log.d(TAG,"Loading file " + filePath); // This returns us content://media/external/videos/media (or something like that) // I pass in "external" because that's the MediaStore's name for the external // storage on my device (the other possibility is "internal") Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; Log.d(TAG,"videosUri = " + imageUri.toString()); String[] projection = {MediaStore.Images.ImageColumns._ID}; // TODO This will break if we have no matching item in the MediaStore. Cursor cursor = contentResolver.query(imageUri, projection, MediaStore.Images.ImageColumns.DATA + " LIKE ?", new String[] { filePath }, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(projection[0]); imageId = cursor.getLong(columnIndex); Log.d(TAG,"Video ID is " + imageId); cursor.close(); return imageId; } private long getVideoIdFromFilePath(String filePath, ContentResolver contentResolver) { long videoId; Log.d(TAG,"Loading file " + filePath); // This returns us content://media/external/videos/media (or something like that) // I pass in "external" because that's the MediaStore's name for the external // storage on my device (the other possibility is "internal") Uri videosUri = MediaStore.Video.Media.getContentUri("external"); Log.d(TAG,"videosUri = " + videosUri.toString()); String[] projection = {MediaStore.Video.VideoColumns._ID}; // TODO This will break if we have no matching item in the MediaStore. Cursor cursor = contentResolver.query(videosUri, projection, MediaStore.Video.VideoColumns.DATA + " LIKE ?", new String[] { filePath }, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(projection[0]); videoId = cursor.getLong(columnIndex); Log.d(TAG,"Video ID is " + videoId); cursor.close(); return videoId; } class GridViewThread implements Runnable { final Bitmap mp3Icon = BitmapFactory.decodeResource(getResources(), R.drawable.mp3); final Bitmap zipIcon = BitmapFactory.decodeResource(getResources(), R.drawable.zip); final Bitmap mp4Icon = BitmapFactory.decodeResource(getResources(), R.drawable.mp4); final Bitmap txtIcon = BitmapFactory.decodeResource(getResources(), R.drawable.txt); final Bitmap jpgIcon = BitmapFactory.decodeResource(getResources(), R.drawable.jpg); final Bitmap aviIcon = BitmapFactory.decodeResource(getResources(), R.drawable.avi); final Bitmap pdfIcon = BitmapFactory.decodeResource(getResources(), R.drawable.pdf); final Bitmap rarIcon = BitmapFactory.decodeResource(getResources(), R.drawable.rar); final Bitmap docIcon = BitmapFactory.decodeResource(getResources(), R.drawable.doc); final Bitmap pngIcon = BitmapFactory.decodeResource(getResources(), R.drawable.png); final Bitmap gifIcon = BitmapFactory.decodeResource(getResources(), R.drawable.gif); final Bitmap wmaIcon = BitmapFactory.decodeResource(getResources(), R.drawable.wma); final Bitmap troisgpIcon = BitmapFactory.decodeResource(getResources(), R.drawable.troisgp); final Bitmap mkvIcon = BitmapFactory.decodeResource(getResources(), R.drawable.mkv); final Bitmap movIcon = BitmapFactory.decodeResource(getResources(), R.drawable.mov); final Bitmap wmvIcon = BitmapFactory.decodeResource(getResources(), R.drawable.wmv); final Bitmap m4aIcon = BitmapFactory.decodeResource(getResources(), R.drawable.m4a); final Bitmap htmlIcon = BitmapFactory.decodeResource(getResources(), R.drawable.html); final Bitmap xmlIcon = BitmapFactory.decodeResource(getResources(), R.drawable.xml); final Bitmap exeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.exe); final Bitmap bmpIcon = BitmapFactory.decodeResource(getResources(), R.drawable.bmp); final Bitmap autreIcon = BitmapFactory.decodeResource(getResources(), R.drawable.autre); final Bitmap apkIcon = BitmapFactory.decodeResource(getResources(), R.drawable.apk); //GridView gridView1; //GridViewAdapter customGridAdapter; ArrayList<Item> gridArray = new ArrayList<Item>(); final int end = (listeFichiers.size()); public void run(){ while (i < end){ //simulation du temps de téléchargement try { Thread.sleep(2000); } catch (InterruptedException exception) { exception.printStackTrace(); } String chemin = ("/storage" + (listeFichiers.get(i))); Uri Chemin = Uri.parse(chemin); //File cheminPath = new File(Chemin.getPath()); String fileName = chemin.substring(chemin.lastIndexOf("/")+1); final String FILEType = fileName.substring(fileName.lastIndexOf(".")+1); final String fileType = FILEType.toLowerCase(); if (fileType.equals("mp3")){ gridArray.add(new Item(mp3Icon,fileName)); } else if (fileType.equals("zip")){ gridArray.add(new Item(zipIcon,fileName)); } else if (fileType.equals("pdf")){ gridArray.add(new Item(pdfIcon,fileName)); } else if (fileType.equals("rar")){ gridArray.add(new Item(rarIcon,fileName)); } else if (fileType.equals("doc") || fileType.equals("docx") ){ gridArray.add(new Item(pdfIcon,fileName)); } else if (fileType.equals("mp4")){ gridArray.add(new Item(mp4Icon,fileName)); } else if (fileType.equals("txt")){ gridArray.add(new Item(txtIcon,fileName)); } else if (fileType.equals("jpg") || fileType.equals("png") || fileType.equals("gif") ){ long idImage = getImageIdFromFilePath(chemin, getContentResolver()); Bitmap thumbBitmap = MediaStore.Images.Thumbnails.getThumbnail( getContentResolver(), idImage, MediaStore.Images.Thumbnails.MINI_KIND, (BitmapFactory.Options) null ); if ((thumbBitmap == null) && (fileType.equals("jpg")) ){ gridArray.add(new Item(jpgIcon,fileName)); } else if ((thumbBitmap == null) && (fileType.equals("png")) ){ gridArray.add(new Item(pngIcon,fileName)); } else if ((thumbBitmap == null) && (fileType.equals("gif")) ){ gridArray.add(new Item(gifIcon,fileName)); } else{ gridArray.add(new Item(thumbBitmap,fileName)); } } else if (fileType.equals("avi") || fileType.equals("mp4") || fileType.equals("mkv") || fileType.equals("3gp")){ long idVideo = getVideoIdFromFilePath(chemin, getContentResolver()); Bitmap thumbBitmap = MediaStore.Video.Thumbnails.getThumbnail( getContentResolver(), idVideo, MediaStore.Video.Thumbnails.MINI_KIND, (BitmapFactory.Options) null ); //Bitmap thumbBitmap = ThumbnailUtils.createVideoThumbnail(((File) cheminPath).getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); if ((thumbBitmap == null) && (fileType.equals("avi")) ){ gridArray.add(new Item(aviIcon,fileName)); } else if ( (thumbBitmap == null) &&(fileType.equals("mp4")) ){ gridArray.add(new Item(mp4Icon,fileName)); } else if ((thumbBitmap == null) &&(fileType.equals("3gp")) ){ gridArray.add(new Item(troisgpIcon,fileName)); } else if ((thumbBitmap == null) &&(fileType.equals("mkv")) ){ gridArray.add(new Item(mkvIcon,fileName)); } else{ gridArray.add(new Item(thumbBitmap,fileName)); } } else if (fileType.equals("apk")){ gridArray.add(new Item(apkIcon,fileName)); } else { gridArray.add(new Item(autreIcon,fileName)); } runOnUiThread(new Runnable() { @Override public void run() { gridView1 = (GridView) findViewById(R.id.gridView1); customGridAdapter = new GridViewAdapter(getBaseContext(), R.layout.row_grid, gridArray); gridView1.setAdapter(customGridAdapter); } }); i=i+1; } } } }
sur la ligne 43 de la class GridViewAdapter:java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
Pourtant il me semble définir le context par la méthode getBaseContext() lorsque la class GridviewAdapter est appelée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part LayoutInflater inflater = ((Activity) context).getLayoutInflater();
J'avoue que la notion de context n'est pas encore très claire pour moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part customGridAdapter = new GridViewAdapter(getBaseContext(), R.layout.row_grid, gridArray);]
Merci d'avance pour vos lumières .
Partager