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