我有两个由tabhost管理的ListFragments。我在标签之间切换的时间都很好。 headerView已正确添加。我第二次在片段之间切换时得到了这个执行:
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)
并且应用程序崩溃了。我用来添加标题视图的代码如下:
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
getListView().setOnScrollListener(this);
getListView().addHeaderView(searchBox);
setListAdapter(mAdapter);
}
怎么了?提前谢谢
答案 0 :(得分:7)
稍后看看android开发人员的参考资料,我猜你在设置适配器后无法再调用addHeaderView。 如果有这样的事情,您可以卸载适配器,添加新的HeaderView并重新加载适配器。如果没有,则应在调用setAdapter方法之前添加所有HeaderView。
答案 1 :(得分:4)
我认为这可能是你问题的答案,我不能肯定地说,因为你没有提供很多代码: