Bonjour,
j'ai essayé de faire l'affichage de mes items à l'aide d'un ViewGrid le problème c'est que pour le premier affichage tout va bien mais si je fais un autre run l'ecran se bloque et rien ne s'affiche et lorsque j'appuie sur le bouton HOME de mon emulateur une tel erreur s'affiche
j'ai pensé qu'il s'agit d'un problème de memoire pour cela j'ai utilisé les threads mais le problème reste le mm voici le code que j'ai saisi
la classe ImageAdapter hérite de BaseAdapter cela et le code de la méthode getView()
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 public class Rayon extends Activity { private ContainerData container; private Thread thread; private Handler handler; private ArrayList<MyDep> mesDep = new ArrayList<MyDep>(); private GridView gridview; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.rayon); gridview = (GridView) findViewById(R.id.gridview); Log.i("", "begin parsing"); thread = new Thread(){ public void run(){ container = new ContainerData(); mesDep = container.parseDep(); handler.sendEmptyMessage(0); }; }; thread.start(); Log.i("", "begin view"); handler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 0) { gridview.setAdapter(new ImageAdapter(Rayon.this, mesDep)); } } }; }
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 @Override public View getView(int arg0, View arg1, ViewGroup arg2) { MyIcon icon; Log.i("", "inflater"); if (arg1 == null) { arg1 = myInflater.inflate(R.layout.icon, null); icon = new MyIcon(); icon.txt = (TextView) arg1.findViewById(R.id.viewDep); icon.image = (ImageView) arg1.findViewById(R.id.imageIcon); arg1.setTag(icon); } else { icon = (MyIcon) arg1.getTag(); } Log.i("", "recuperer the path"); String sousChaine = mesDep.get(arg0).getImagePath().substring(15); String sousChaine2 ="http://"; String url = sousChaine2.concat(sousChaine); Bitmap b = telechargerImageBit(url); Log.i("", url); icon.image.setImageBitmap(Bitmap.createScaledBitmap(b, 60, 60, false)); Log.i("", "txt"); icon.txt.setText(mesDep.get(arg0).getName()); return arg1; }
Partager