从非常晚的异步回调中扩展ExpandableListView

时间:2013-10-17 03:51:17

标签: android asynchronous expandablelistview

我希望我能清楚地写出我的问题。

我正在开发一个遗留项目,并且有一个特定的屏幕,如下所示: Screen

大矩形为Fragment,多个矩形分别为ExpandableListFragment

内的ViewPager

每个ExpandableListFragment的内容都是通过服务器的JSON加载的。

  • 在每个ExpandableListFragment上,我在创建并设置相关列表适配器后,在onActivityCreated内向服务器发送了JSON数据请求。
  • 此请求是异步的,并且有一个回调来加载获取的数据。
  • 数据显示为ExpandableList,其中index(0)处的组已展开。
  • 我可以向前或向右滚动ViewPager,具体取决于所包含的ExpandableListFragment
  • 的大小
  • 我已经想出要为每个ExpandableListFragment发送一个请求。
  • 但是,假设我走得太远(或者说太快)了。例如,我的索引号为12。
  • 然后请求索引编号0完成,我的回调被调用。
  • 我的IllegalStateException内容视图尚未创建。
  • 异常的责任行是,该方法是回调方法。

    public void processResult(ScheduleListJSON response) {
      setListData(response);
      adapter.notifyDataSetChanged();
      // The problem line is here.
      getExpandableListView().setOnChildClickListener(ProgramScheduleExpandableList.this);
      if (getExpandableListAdapter().getGroupCount() > 0) {
        getExpandableListView().expandGroup(0);
      }
    

    }

  • 我认为这是因为我已经走到了右边,这个方法中我的回调(索引0)所处理的列表视图已经消失了。

问题: 关于如何实现我的意图的任何建议?扩展响应的组视图可能会很晚到达,即使用户没有离开主Activity,它也可能已经消失,因为片段远离屏幕。

非常感谢你。

更新 哦等等,mPager.setOffscreenPageLimit(int)是否与寻呼机内有多少列表视图保证可用有关?

0 个答案:

没有答案