2013-07-23 10 views
1

J'essaie de créer dynamiquement une disposition linéaire avec un nombre dynamique de boutons basé sur certains paramètres. Jusqu'à présent, j'ai du code qui compile mais quand il s'exécute il n'affiche rien.Définition d'une disposition linéaire

public void displayMenu() 
{ 
    LinearLayout lin = new LinearLayout(CategoryMenu.this);   
    lin.setOrientation(LinearLayout.VERTICAL); 
    lin.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

    ArrayList<Button> btnList= new ArrayList<Button>(); 

    //Test Button 
    Button btn1= new Button(this); 
    btn1.setText("Dylan");  
    lin.addView(btn1); 

    for (int i =0 ; i < 5; i++){ 

    btnList.add(new Button(this)); 
    btnList.get(i).setText("Hello:"+i);  
    lin.addView(btnList.get(i)); 
    Log.i("CategoryMenu","Adding btn to view"); 
    }  
} 

Qu'est-ce que je fais mal? Je suis sûr qu'il me manque quelque chose d'idiot ici.

+0

Où ajoutez-vous votre disposition linéaire (lin)? –

Répondre

2

vous devez ajouter lin à la hiérarchie actuelle de vue, ou la création d'un nouveau appelant setContentView(lin);

1

Il semble que vous n'êtes pas en ajoutant que la disposition linéaire à un parent viewgroup.

Après tout votre code, vous devez ajouter quelque chose comme

myParentViewGroup.add(lin); 
0

Avant lin.addView(btn1);

Vous devez définir layoutparams Button comme:

// Defining the layout parameters of the Button 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.FILL_PARENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT); 

     // Setting the parameters on the Button 
     tv.setLayoutParams(lp); 
0

Vous devez ajouter lin aussi la disposition. Actuellement, vous venez de créer une Linearlayout, mais vous ne l'avez pas associée à une mise en page.

0

LinearLayout lin = nouveau LinearLayout (CategoryMenu.this);
lin.setOrientation (LinearLayout.VERTICAL); lin.setLayoutParams (new LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

ArrayList<Button> btnList= new ArrayList<Button>(); 
Questions connexes