ViewStub'parent viewgroup

时间:2011-05-13 05:43:04

标签: android viewstub

该异常的含义是什么

ava.lang.IllegalStateException:ViewStub必须具有非null的ViewGroup viewParent

我正在创建一个View Stub数组并将它们添加到linearLayout但是此异常在运行时显示

for(int i=0;i<1;i++)
{
  try
     {
       stub[0]=new ViewStub(getApplicationContext(),R.layout.view_stub_layout);

      //Viewv=stub[i].inflate(getApplicationContext(),R.layout.view_stub_layout,mainLayout);
      //stub[0].setLayoutResource(R.layout.view_stub_layout);
      View v;
      v=stub[0].inflate();
      mainLayout.addView(v);
      v=null;
  }
  catch(Exception e){
      e.getMessage();
  }
}

1 个答案:

答案 0 :(得分:1)

您的ViewStub没有父母,这就是您捕获异常的原因。您必须首先在ViewStub中添加Layout,然后再将其View充气。

为什么使用ViewStub?你真的需要它吗?也许它可以是一个很好的解决方案:

try {
    View.inflate(getApplicationContext(), R.layout.view_stub_layout, mainLayout);
} catch(Exception e){
    e.getMessage();
}

如果您需要保留添加的视图:

try {
    views[i] = View.inflate(getApplicationContext(), R.layout.view_stub_layout, null);
    mainLayout.add(views[i]);
} catch(Exception e){
    e.getMessage();
}