Bonjour à toutes et à tous,
je cherche à créer par programmation des Layout placés les uns au-dessous des autres. pour cela, j'utilise l'instruction "addRule". Le deuxième paramètre de cette instruction est l'Id d'un autre Layout. Si pour cet Id, je prend celui d'un Layout créé dans le fichier .xml, ça fonctionne, la valeur de l'ID est par exemple : 2131099654
Maintenant, si, comme dans la procédure qui suit, je prends l'Id du Layout précédemment créé, j'obtiens toujours -1, valeur donnée en passant le pointeur de la souris sur la valeur "k" en mode debug. Mais, si je déplace la souris sur "boite[i]", j'obtiens des valeurs du genre : 830031500544 !!! Cette valeur n'est plus un "int", mais un "long".
En conclusion, je ne comprends pas, je ne sais pas ce qu'il faut faire pour avoir la valeur correcte de 'l'Id des layout que je crée par programmation.
Merci de votre aide.
Pierre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public static RelativeLayout[] boitesEdit(int nbBoites) { RelativeLayout boite [] = new RelativeLayout [nbBoites]; int k = 0; for (int i = 0; i < nbBoites; i++) { boite[i] = new RelativeLayout(context); LayoutParams editionPrms = new LayoutParams(LayoutParams.MATCH_PARENT, 150); // Width , height if (i != 0) { k = boite[i-1].getId(); editionPrms.addRule(RelativeLayout.BELOW, k); } boite[i].setLayoutParams(editionPrms); } return boite; }
Partager