0

我使用下面的代码动态添加了一个 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);

}

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

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

4

1 回答 1

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 );
于 2012-07-10T07:38:17.177 回答