以编程方式定义Linearlayout

时间:2013-07-23 08:01:32

标签: android android-layout android-linearlayout

我正在尝试使用基于某些参数的动态数量的按钮动态创建线性布局。到目前为止,我有一些编译的代码,但是当它运行时它不会显示任何内容。

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");
    }       
}

我做错了什么?我确信我在这里错过了一些愚蠢的事情。

5 个答案:

答案 0 :(得分:2)

您必须将lin添加到当前的视图层次结构中,或者创建一个名为setContentView(lin);

的新层次结构

答案 1 :(得分:1)

您似乎没有将该线性布局添加到视图组父级。

在您完成所有代码后,您应该添加类似

的内容
myParentViewGroup.add(lin);

答案 2 :(得分:0)

lin.addView(btn1);之前

您应该为Button定义layoutparams,如:

 // 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);

答案 3 :(得分:0)

您还必须添加 lin 布局。 目前您刚刚创建了一个Linearlayout,但尚未将其附加到任何布局。

答案 4 :(得分:0)

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>();