试图动态插入LinearLayout

时间:2012-07-10 07:33:04

标签: android android-layout

我使用以下代码动态添加LinearLayout。

 public void sendMessage02(View view){
    view.getId();
    EditText editText=(EditText)findViewById(R.id.edit_message);
    String message=editText.getText().toString();

    LinearLayout l=(LinearLayout)findViewById(R.id.layout_odd);
    TextView text=new TextView(this);
    text.setText(message);
    text.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    l.addView(text);

    LinearLayout l2=(LinearLayout)findViewById(R.id.layout01);
    l2.addView(l);

}

当我运行我的应用程序时,它模拟器显示错误,说不幸的是应用程序停止了。

我做错了什么?有没有其他动态添加布局的方法。

1 个答案:

答案 0 :(得分:1)

使用此示例,您不会尝试插入LinearLayout。您将获得现有LinearLayout

的参考
LinearLayout l=(LinearLayout)findViewById(R.id.layout_odd);

并向其添加TextView

 l.addView(text);

如果你想在线性添加一个LinearLayout,你可以参考你的ViewGroup并为它添加一个新的LinearLayout。

您可以创建LinearLayout来创建全新的实例:

LinearLayout l = new LinearLayout(context);

或从布局资源中膨胀:

LinearLayour l = getInflater().inflate(R.layout.my_linear_layout);

然后将其附加到ViewGroup

ViewGroup root = findViewById(R.id.my_view_group);
root.addView( l );