IinearLayout.addView(TextView)不起作用

时间:2016-03-23 07:53:46

标签: android

我想以编程方式将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 )   ;   

    }
}

3 个答案:

答案 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 );   

    }
}
相关问题