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 }