2013-03-04 70 views
-1

我想創建按鈕1到9,我想在循環中做到這一點。但在每3次計數中,我想創建一個新的LinearLayout。把LinearLayout放到LinearLayout數組

final LinearLayout[] ll2 = new LinearLayout[10]; // create an empty array; 


      for(int i=1; i<=9;i++) 
      { 
       Button btnNums = new Button(this); 
      final LinearLayout[] ll2 = new LinearLayout[10]; // create an empty array; 


      for(int i=1; i<=9;i++) 
      { 
       Button btnNums = new Button(this); 
       btnNums.setText(i+""); 
       ll.addView(btnNums); 
       if(i%3==0){ 
        ll2[i] = ll; 
        ll = null; 

       } 
      } 

      layout.addView(ll2[0]); 

    btnNums.setText(i+""); 
      ll.addView(btnNums); 
      if(i%3==0){ 
       ll2[i] = ll; 
       ll = null; 

      } 
     } 

     layout.addView(ll2[0]); 

這是行不通的。我沒有得到任何錯誤,但是當運行應用程序時,它停止工作。有什麼問題?

+1

聽起來像一個更好的解決辦法是將使用GridLayout或Gridview – draksia 2013-03-04 18:36:02

+0

我不得不使用linearlayout – snnlaynnkrdsm 2013-03-04 18:42:35

+0

停止工作意味着什麼?它崩潰或不像預期的那樣行事?你粘貼的代碼甚至不能編譯。 – LuxuryMode 2013-03-04 18:43:33

回答

0

我用它在我的項目中,它爲我工作,我用它這樣。希望它可以幫助

在類級別聲明空數組:

LinearLayout[] imageLayoutContainers = new LinearLayout[10]; 

然後在上的onCreate methord:

for (int i = 0; i < imageLayoutContainers.length; i++) { 
     imageLayoutContainers[i] = new LinearLayout(this); 
     imageLayoutContainers[i].setOrientation(LinearLayout.VERTICAL); 
     imageLayoutContainers[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
     imageLayoutContainers[i].setBackgroundResource(imagesIds[i]); 
    } 

它的工作,感謝