我使用以下代码动态添加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);
}
当我运行我的应用程序时,它模拟器显示错误,说不幸的是应用程序停止了。
我做错了什么?有没有其他动态添加布局的方法。
答案 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 );