Ejemplo n.º 1
0
  private void initNav() {
    // 导航 begin
    mNavEListView = (ExpandableListView) findViewById(R.id.nav_elv);
    superAdapter = new SuperTreeViewAdapter(this, stvClickEvent);
    superAdapter.setHeight(navHeight);
    ArrayList<TreeVo> tlist = new ArrayList<TreeVo>();

    SharedPreferences settings = getSharedPreferences(Def.PREFS_NAME, 0);
    String njson = settings.getString(Def.SP_NAV_NAME, "");
    try {
      if (njson == null || "".equals(njson)) {
        new DataAsyncTask(this, false).execute("2");
      }
      if (njson == null || "".equals(njson)) {
        new DataAsyncTask(this, false).execute("2");
      }
      JSONArray jArr = new JSONArray(njson);
      tlist = SubjectDao.getArrayToTree(jArr);
    } catch (Exception e) {
      e.printStackTrace();
    }
    //
    List<SuperTreeViewAdapter.SuperTreeNode> superTreeNode = superAdapter.GetTreeNode();

    if (tlist != null && tlist.size() > 0) {
      for (int i = 0; i < tlist.size(); i++) {
        if (tlist.get(i).getParentid() == null || tlist.get(i).getParentid().equals("0")) {
          SuperTreeViewAdapter.SuperTreeNode superNode = new SuperTreeViewAdapter.SuperTreeNode();
          superNode.parent = tlist.get(i);
          for (int j = 0; j < tlist.size(); j++) {
            if (tlist.get(i).getTreeId().equals(tlist.get(j).getParentid())) {
              TreeViewAdapter.TreeNode node = new TreeViewAdapter.TreeNode();
              node.parent = tlist.get(j);
              for (int k = 0; k < tlist.size(); k++) {
                if (tlist.get(j).getTreeId().equals(tlist.get(k).getParentid())) {
                  node.childs.add(tlist.get(k));
                }
              }
              superNode.childs.add(node);
            }
          }
          superTreeNode.add(superNode);
        }
      }
    }
    superAdapter.UpdateTreeNode(superTreeNode);
    mNavEListView.setAdapter(superAdapter);
    mNavEListView.setOnGroupExpandListener(
        new OnGroupExpandListener() {
          @Override
          public void onGroupExpand(int arg0) {
            for (int i = 0; i < superAdapter.getGroupCount(); i++) {
              if (arg0 != i) {
                mNavEListView.collapseGroup(i);
              }
            }
          }
        });
    // 导航 end
  }