【问题标题】:ListFragment add headerView gives java.lang.IllegalStateException:alledListFragment addheaderView 给出 java.lang.IllegalStateException: called
【发布时间】:2011-10-05 13:25:51
【问题描述】:

我有两个由 tabhost 管理的 ListFragment。我第一次在标签之间切换一切都很好。 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);
}

怎么了?提前致谢

【问题讨论】:

标签: android android-fragments


【解决方案1】:

看了一眼 android 开发人员的参考资料后,我猜你在设置适配器后不能再调用 addHeaderView 了。 如果有这种情况,可以卸载adapter,添加新的HeaderView,重新加载adapter。如果没有,则应在调用 setAdapter 方法之前添加所有 HeaderView。

ListView.addHeaderView

【讨论】:

  • 从他放的代码看,好像是在addHeaderView之后调用setListAdapter?
  • 清除在 BaseAdapter 中不存在。我不得不调用 setListAdapter(null)
  • @blackbelt 很好,我可以为您指出正确的方向 :)
  • 将适配器设置为 NULL 或清除其项目不会解决异常。
  • 来自我的回答中的链接:> 注意:首次引入时,只能在使用 setAdapter(ListAdapter) 设置适配器之前调用此方法。从 KITKAT 开始,可以随时调用此方法。因此,如果您使用最新版本,这应该不再是问题
【解决方案2】:

我认为这可能是您问题的答案,我不能肯定地说,因为您没有提供太多代码:

Best place to addHeaderView in ListFragment

【讨论】:

  • 事实上我做的事情和老兄建议的一样
  • @blackbelt,觉得值得一试,也许你可以给我们更多的代码来看看?
  • 这就是您需要查看的所有代码。我最好的猜测是,您只阅读了帖子的标题而不是答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 2018-09-26
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多