我正在尝试使用基于某些参数的动态数量的按钮动态创建线性布局。到目前为止,我有一些编译的代码,但是当它运行时它不会显示任何内容。
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");
}
}
我做错了什么?我确信我在这里错过了一些愚蠢的事情。
答案 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>();