我尝试为可扩展列表视图设置适配器,如下所示:
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);
}
这里我得到以下错误:&#34;类型ArrayList中的方法get(int)不适用于参数(SearchListView)&#34;
在上面代码的最后一行。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
拥有更多信息确实会很好。通常,当您报告错误时,请尝试从logcat复制/粘贴此错误的堆栈跟踪。
无论如何,我感觉你的问题正在发生,因为你没有正确更新方法&#34; getChildrenCount&#34;和&#34; getGroupCount&#34;。
在这种方法中,您应该使用列表中的长度进行更新:
@Override
public int getChildrenCount(int groupPosition)
{
return searchresultList.size();
}
@Override
public int getGroupCount()
{
return industryListViews.size();
}
我将industryListViews作为组/标题列表,将searchresultList作为子列表。
答案 1 :(得分: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