在LinearLayout中动态创建多个TextView

时间:2015-01-16 17:05:07

标签: android android-layout android-linearlayout

我想在TextView内创建多个LinearLayout。以下代码已成功构建,但在NullPointerExceptionroot.addView(t[i]);处显示public class MainActivity extends ActionBarActivity { TextView t[]; LinearLayout root; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); root=(LinearLayout)findViewById(R.id.master); t=new TextView[10]; LinearLayout.LayoutParams dim=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); for(int i=0;i<10;i++) { t[i]=new TextView(this); t[i].setLayoutParams(dim); t[i].setText("YOHOHO: "+i); root.addView(t[i]); } setContentView(root); }

{{1}}

这真的没有目的,我只是想学习东西!

2 个答案:

答案 0 :(得分:3)

它正在给予NPE,因为您没有正确设置活动布局。

这样做

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.whereLinearLayoutMasterIs); // Add your layout here
    root=(LinearLayout)findViewById(R.id.master);
    t=new TextView[10];
   LinearLayout.LayoutParams dim=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    for(int i=0;i<10;i++)
    {
        t[i]=new TextView(this);
        t[i].setLayoutParams(dim);
        t[i].setText("YOHOHO: "+i);
        root.addView(t[i]);
    }
}

注意 R.layout.whereLinearLayoutMasterIs是指示性的,请使用R.id.master

的布局

答案 1 :(得分:0)

问题是root为空 - 这是因为您尚未通过setContentView设置活动的内容视图。 你需要做这样的事情:

super.onCreate(...); setContentView(R.layout.yourLayoutName); root=(LinearLayout)findViewById(R.id.master);