我想在aTextView中创建多个LinearLayouts。以下代码构建成功,但在行NullPointerException处给出了一个root.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);
    }

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

最佳答案

它给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所在的布局

09-26 02:44