@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { checkMenuItem = menuItem; if (isChecked) { // 保存手册列表 currentMenuLevel = getMenuItemLevel(checkMenuItem); // 获取菜单的级别 switch (currentMenuLevel) { case MenuItem.LEVEL_ONE: // 一级菜单 checkMenuItem.setLevel(MenuItem.LEVEL_ONE); saveFaveItem(); // 保存收藏项 break; case MenuItem.LEVEL_TWO: // 二级菜单 checkMenuItem.setLevel(MenuItem.LEVEL_TWO); saveFaveItem(); break; case MenuItem.LEVEL_THREE: // 三级菜单 checkMenuItem.setLevel(MenuItem.LEVEL_THREE); MenuItem paretMenuItem = (MenuItem) CacheUtil.get( MenuItem.MENUITEM_KEY + checkMenuItem.getParentMenuId()); // 拿到父菜单,二级菜单 if (CacheUtil.get(paretMenuItem.getId()) == null) { // 看缓存中有没有三级子菜单,没有就加载三级子菜单 if (paretMenuItem.getType() == MenuItem.CUSTOM_MENU) { loadMenuItems(paretMenuItem.getId()); } else if (paretMenuItem.getType() == MenuItem.CHANNEL_MENU) { // 频道 Toast.makeText(MenuItemSetActivity.this, "该数据有误,不可以收藏", Toast.LENGTH_SHORT).show(); } } else { saveFaveItem(); // 保存收藏项 } break; } } else { checkMenuItem.setLocalFavorites(false); favoriteItemDao.delFavoriteItem(checkMenuItem.getId()); homeMenuItems.remove(checkMenuItem); } }