Bonjour à tous,

J'ai créer une custom relativeLayout puis je crée des vues dynamiquement au fur et à mesure des données que je reçois.
voici un example de code:
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
 for (int i = 0; i <3; i++) {
            RelativeLayout firstLayout = new RelativeLayout(this);
            RelativeLayout.LayoutParams firstLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
            firstLayout.setId(1 +i);
            firstLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
            firstLayoutParams.addRule(RelativeLayout.BELOW, firstLayout.getId() -1);
            firstLayoutParams.setMargins(0, 20, 0, 0);
            firstLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, firstLayout.getId() -1);
 
            firstLayout.setLayoutParams(firstLayoutParams);
 
            ImageView imageView = new ImageView(this);
            imageView.setImageDrawable(getResources().getDrawable(R.drawable.play_station_4));
            RelativeLayout.LayoutParams imageViewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
            imageView.setId(1);
            imageViewParams.addRule(RelativeLayout.ALIGN_LEFT);
            imageViewParams.addRule(RelativeLayout.ALIGN_TOP);
            imageView.setLayoutParams(imageViewParams);
 
 
            TextView title_txt = new TextView(this);
            RelativeLayout.LayoutParams title_txtParams = new RelativeLayout.LayoutParams(250,RelativeLayout.LayoutParams.WRAP_CONTENT);
            title_txtParams.addRule(RelativeLayout.RIGHT_OF, imageView.getId());
            title_txtParams.addRule(RelativeLayout.ALIGN_TOP);
            title_txt.setId(8);
            title_txt.setLayoutParams(title_txtParams);
            title_txtParams.setMargins(10, 0, 0, 0);
            title_txt.setText("Sisley Chantal, sac porté main - Noir (Black, Taille unique)");
 
            TextView price_txt = new TextView(this);
            RelativeLayout.LayoutParams price_txtParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
            price_txtParams.addRule(RelativeLayout.RIGHT_OF, title_txt.getId());
            price_txtParams.addRule(RelativeLayout.ALIGN_TOP);
            price_txt.setId(5);
            price_txt.setLayoutParams(price_txtParams);
            price_txtParams.setMargins(20, 0, 0, 0);
            price_txt.setText("EUR 75,00");
 
 
            TextView quantity_txt = new TextView(this);
            RelativeLayout.LayoutParams quantity_txtParams = new RelativeLayout.LayoutParams(50,50);
            quantity_txtParams.addRule(RelativeLayout.ALIGN_LEFT,title_txt.getId());
            quantity_txtParams.addRule(RelativeLayout.BELOW, title_txt.getId());
            quantity_txt.setId(54);
            quantity_txt.setLayoutParams(quantity_txtParams);
            quantity_txtParams.setMargins(10, 10, 0, 0);
            quantity_txt.setText("2");
 
 
            firstLayout.addView(quantity_txt);
            firstLayout.addView(title_txt);
            firstLayout.addView(price_txt);
            firstLayout.addView(imageView);
 
            relativeLayout.addView(firstLayout, firstLayoutParams);
		}

Je trouve que c'est peu lisible même si ça fonctionne parfaitement, donc je voudrais m'orienter vers une approche en xml et je sais qu'on peux ajouter un layout à ma customRelativeLayout en faisant un inflate de ce dernier dans le constructeur.

Ce que je cherche actuellement c'est crée une nouvelle instance de vue dans une boucle avec findViewById.

par exemple dans la boucle précédente j'aurais quelque chose qui ressemble à ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
for (int i = 0; i <3; i++) {
ImageView img =  (ImageView)findViewById(R.id.mon_image_view);
}
Mais le fait est que j'ai toujours la même instance de vue à chaque itération. Est ce que cette approche est possible à votre avis ? Je voudrais reproduire le même mécanisme que dans une listView sans le recyclage de vue.
Merci de votre aide.