如何从ExpandableListView中的组到达项目?

时间:2015-04-23 12:54:57

标签: android expandablelistview navigation-drawer expandablelistadapter

我有一个OnGroupClick方法来查看ExpandableListView中的特定组是否是一个组。组的模型有一个ChildItems列表,当它为null时,ExpandableListView不能尝试扩展,而只是执行特定于该GroupItem的代码。

我的代码有效:

mDrawerList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
        if (groupPosition == 0 || groupPosition == 3) {
            Toast.makeText(MainActivity.this, "Start clicked", Toast.LENGTH_LONG).show();
            return true;
        } else
            return false;
    }
});

我尝试的是以下代码:

mDrawerList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
        JPPNavDrawerAdapter2 adapter = (JPPNavDrawerAdapter2) parent.getAdapter();
        JPPNavDrawerAdapter2.GroupItem item = (JPPNavDrawerAdapter2.GroupItem) adapter.getGroup(groupPosition);
        if (item.getChildren() == null) {
            Toast.makeText(MainActivity.this, "Start clicked", Toast.LENGTH_LONG).show();
            return true;
        } else
            return false;
    }
});

当我运行此操作时,当我尝试点击某个项目时,我的应用程序崩溃了。这段代码有什么问题?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

getAdapter()方法不会返回您使用setAdapter()定义的适配器实例。您必须改为使用getExpandableListAdapter()。文档clearly states this