2010-03-25 72 views
0

我已經使用SimpleExpandableListAdapter類型在我的Android應用程序中創建了可擴展列表。 但我完全喪失瞭如何檢測事件時,其中一個子項被選中/點擊。如何處理Android SimpleExpandableListAdapter條目選擇

我試過所有常見的OnClickListener/OnChildClickListener等,但似乎無法找到(通過實驗或半小時谷歌搜索)正確的處理程序應該是什麼。

任何幫助非常感謝。

回答

2

它應該是:

list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
    public void onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
     Object o = (Object)adapter.getChild(groupPosition, childPosition); 
     // perform work on child object here 
    } 
} 

儘管,這聽起來像你想這... ExpandableListView.OnChildClickListener說,這是,其實辦法做到這一點。

另外,你有沒有爲你的ListAdapter定義方法allItemsAreEnabled()和/或isEnabled()?你不應該,但也許他們目前已定義並返回錯誤的值?

+1

事實證明,我可以只聲明onClick,而無需通過setOn ...函數註冊對象。 這與我迄今爲止使用的所有其他類似乎不同。 – DaveG 2010-03-28 20:41:28

1

也...

如果你碰巧使用的擴展BaseExpandableListAdapter一個類,那麼他們是你必須設置爲返回boolean值的默認實現的方法。

@Override 
public boolean isChildSelectable(int groupPosition, int childPosition) { 
    // TODO Auto-generated method stub 
    return true; 
} 

默認情況下,該方法返回false,交換爲true(如果是這種情況),你的OnChildClickListener應該開始正確解決。