ListFragment add headerView给出了java.lang.IllegalStateException:alled

Bla*_*elt 2 android android-fragments

我有两个由tabhost管理的ListFragments.我在标签之间切换的时间都很好.headerView已正确添加.我第二次在片段之间切换我得到这个execption:

10-05 15:15:01.585: ERROR/AndroidRuntime(23263): java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):     at android.widget.ListView.addHeaderView(ListView.java:261) 
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):     at android.widget.ListView.addHeaderView(ListView.java:284) 
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):     at it.chiesacattolica.archive.ArchiveFragment.onActivityCreated(ArchiveFragment.java:199) 
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:858) 
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):     at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1183)
Run Code Online (Sandbox Code Playgroud)

和应用程序崩溃.我用来添加标题视图的代码如下:

@Override
public void onActivityCreated(Bundle arg0) {
    super.onActivityCreated(arg0);      
    getListView().setOnScrollListener(this);
    getListView().addHeaderView(searchBox);
    setListAdapter(mAdapter);
}
Run Code Online (Sandbox Code Playgroud)

怎么了 ?提前致谢

小智 7

稍等一下android开发人员参考后,我猜你在设置适配器后不能再调用addHeaderView.如果有这样的事情,您可以卸载适配器,添加新的HeaderView并重新加载适配器.如果没有,则应在调用setAdapter方法之前添加所有HeaderView.

请参阅ListView.addHeaderView