我想以编程方式将textview
添加到linear layout
,所以我尝试使用以下代码,但它崩溃了我的应用。
TextView valueTV = new TextView(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linearLayout = (LinearLayout)findViewById(R.id.RL);
for(int i=0;i<10;i++)
{
linearLayout.addView(valueTV ) ;
}
}
答案 0 :(得分:1)
你必须添加如下(编辑答案) -
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
TextView tv=new TextView(this);
tv.setLayoutParams(lparams);
tv.setText("test");
linearLayout.addView(tv);
答案 1 :(得分:0)
只需在TextView
onCreate()
即可
valueTV = new TextView(this);
因为您在声明部分中声明了上下文为空。
答案 2 :(得分:0)
你必须在添加布局之前初始化textview,这样carsh就不会在那里直接添加valueTv而没有在你当前初始化onCreate()的范围内初始化。
linearLayout = (LinearLayout)findViewById(R.id.RL);
for(int i=0;i<10;i++)
{
TextView valueTV =new TextView(this);
valueTV .setText(i+"");
linearLayout.addView(valueTV );
}
}