2013-03-04 60 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]); 
    } 

它的工作,感谢