2016-01-21 42 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()方法 –

相關問題