public void updateMatchOddsMap() {
    groups.clear();
    Map.Entry[] entries = getSortedMapEntry(matchOddsMap);
    for (int i = 0; i < entries.length; i++) {
      Match match = (Match) entries[i].getKey();
      if (!oddsManager.canDisplayOdds(match, date)) {
        //				Log.d(TAG, "match of match id: " + match.getMatchId() + " not to display because match
        // status: " + match.getStatus());
        continue;
      }
      List<Odds> group_childrenList = (List<Odds>) entries[i].getValue();
      OddsGroup oddsGroup = new OddsGroup(match, group_childrenList);
      groups.add(oddsGroup);
    }

    // expand all groups
    int groupCount = adapter.getGroupCount();
    for (int i = 0; i < groupCount; i++) {
      listView.expandGroup(i);
    }
  }
  private void reloadListDataAndView() {

    if (firstLoad) {
      // 默认一级赛事
      List<String> filterLeagueIdList = new ArrayList<String>();
      for (League league : topLeagues) {
        filterLeagueIdList.add(league.getLeagueId());
      }
      oddsManager.setFilterLeagueIdList(filterLeagueIdList);
      // 设置筛选的联赛
      leagueManager.setLeagueList(topLeagues);
      Set<String> filterSet = new HashSet<String>();
      filterSet.addAll(filterLeagueIdList);
      leagueManager.setFilterLeagueSet(filterSet);

      firstLoad = false;
    }

    matchOddsMap = oddsManager.filterOddsByOddsType(companyManager.getOddsType());
    updateMatchOddsMap();
    updateNoOddsTextView();
    adapter.notifyDataSetChanged();
  }