0

我想如下步驟設置適配器的擴展列表視圖設置適配器:要爲可擴展列表視圖

public class CompanyProfileAdapter extends BaseExpandableListAdapter { 

Context context; 
ArrayList<SearchListView> searchresultList; 
ArrayList<IndustryListView> industryListViews; 

public CompanyProfileAdapter(Context context, 
     ArrayList<IndustryListView> industryListViews, 
     ArrayList<SearchListView> searchresultList) { 
    // TODO Auto-generated constructor stub 
    this.context = context; 
    this.searchresultList = searchresultList; 
    this.industryListViews = industryListViews; 
} 

@Override 
public Object getChild(int groupPosition, int childPosition) { 
    // TODO Auto-generated method stub 
    return industryListViews.get(this.searchresultList.get(groupPosition)).get(childPosition); 
} 

在這裏我得到這個以下錯誤:「GET方法(INT)在類型ArrayList不適用於上述代碼的最後一行中的參數(SearchListView)「

」。任何人都可以請幫我解決這個問題。

+0

在這行你得到錯誤?你能發表您的堆棧跟蹤 – Soham

+0

很抱歉的混亂。我在getChild()方法的return語句中出錯。 –

+0

該方法 - > industryListViews.get(int index)接受int,而不是SearchListView。 –

回答

0

這是真的會很高興有更多的信息。通常,當您報告錯誤時,嘗試從logcat複製/粘貼此錯誤的堆棧跟蹤。

無論如何,我感覺你的問題來了,因爲你沒有正確更新方法「getChildrenCount」和「getGroupCount」。

在這種方法中,你應該跟你列出的lenght更新:

@Override 
public int getChildrenCount(int groupPosition) 
{ 
    return searchresultList.size(); 
} 


@Override 
public int getGroupCount() 
{ 
    return industryListViews.size(); 
} 

我承擔industryListViews作爲組/頭列表,並searchresultList的孩子名單。

0

您正在使用兩個不同的數組列表..我認爲問題是。

ArrayList<SearchListView> searchresultList; 
    ArrayList<IndustryListView> industryListViews; 

看你的代碼,你在哪裏得到錯誤。 你寫

return industryListViews.get(this.searchresultList.get(groupPosition)).get(childPosition); 

其實這種代碼並不適用於一個ArrayList。 您需要使用HashMap的這樣private HashMap<String, ArrayList<String>> industryListViews;

有關它的更多信息,你可以按照本 ExpandableListView