2016-01-21 46 views
1

我第一次使用自定义ExpandableListview。我有自定义可扩展列表视图,其中包含10个组,其中一些组有孩子,有些组没有孩子。如何让ExpandableListView中没有孩子的群组

我想孩子点击子项时。 (在小组有小孩的情况下)

我想要群组,当点击群组项目时。 (在小组没有小孩的情况下)

我通过使用OnChildClickListener(第一种情况)得到小孩,但是没有得到小组。 (第二种情况)

有没有什么办法可以一次搞定两个。如果小组有小孩则返回点击小孩,否则返回点击小组。

请帮我

回答

2

首先设置OnChildClickListener列出

下一页设置OnGroupExpandListener列出

exList.setOnChildClickListener(this); 
exList.setOnGroupExpandListener(this); 

@Override 
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
    Group gr = ds_list.get(groupPosition); 
    //here you can get child from group 
    return true; 
} 

@Override 
public void onGroupExpand(int i) { 
    if(group don't have child) { 
     //get group by using group position(i) 
    } 
} 

您可以添加OnGroupCollapseListener

不要使用OnChildClickListenerOnGroupExpandListener在一起,因为组项目不可展开的行为就像一个正常的ListView

0

您可以使用此方法来获取父视图的索引,并检查该位置的父是否包含一个孩子或没有。

expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 

    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
     //here you can check whether your parent contains a child or not by getting the parent position. 
     return false; 
    } 
}); 
+0

OnItemClickListener无法正常工作 –

+0

对不起,“不工作”是什么意思?当你试图添加代码时会发生什么? –

+0

当我点击组不会去OnItemClick()方法 –