在我的项目中,可扩展列表视图对于所有登录名都是通用的,但是在新的更新中,基于登录用户的角色,我想停止显示某些组视图的子级。我设法放置了一个“访问被拒绝”对话框,但无法停止,无法扩展groupview或显示子视图。有办法吗?

我试图将角色传递给expandableListAdapter类的适配器,并在getChildView中编写一些情况,例如if(groupPosition == 1 && role == 1)我夸大了一个空布局。这样我无法阻止扩展,子视图仍在显示,但是它是空的,单击该子视图会引发空指针异常。

最佳答案

我找到了解决方法,我针对特定情况返回了孩子人数0

@Override
    public int getChildrenCount(int groupPosition) {
        Log.e("getChildrenCount", "getChildrenCount");

        if ((this.listDataChild.get(this.listDataHeader.get(groupPosition)) == null)
                || (roleId.equalsIgnoreCase("2") && groupPosition!=1)
                || (roleId.equalsIgnoreCase("3") && groupPosition!=2)
                || (roleId.equalsIgnoreCase("5") && groupPosition!=4)   )
            return 0;
        else
            return this.listDataChild.get(this.listDataHeader.get(groupPosition)).size();
    }


这对我有用
谢谢

07-26 09:30