我在同一个屏幕上使用两个ListView,因为使用了两个Listviews
可能Parent ListView
和Child ListView
,所以Child ListView Adapter
类并未显示所有内容Child ListView.It中的列表值在Child ListView中仅显示0 th(first)
位置,针对上述问题,我使用了此Android list view inside a scroll view链接中的答案代码。现在我可以看到{{1}中的所有列表值但是我没有在Child ListView
抓取的同一时间显示我的所有列表值。它仅在列表中显示第一个值,因为列表视图高度设置为列出单个项目的高度。如果我向下滚动Child ListView我能够看到ListView中的所有值。我需要的是如果我从Web服务获得五个列表值它必须同时显示所有五个项目。
注意:如果我为List设置了硬编码值,它一次显示Child ListView中的所有项目。
被修改
我是如何使用MergeAdapter
实现的这个Web service call
方法会返回createAdapter
个对象,我已使用Adapter
setAdapter(createAdapter(new ArrayList<T>()))
我需要的是
我被建议使用 private ListAdapter createAdapter(List<T> items) {
mergeAdapter = new MergeAdapter();
mergeAdapter.addAdapter(endlessFeedAdapter);
return mergeAdapter;
}
而不是ExpandableListView
。
如果我使用two ListViews
,我必须将ExpandableListView
方法返回类型更改为createAdapter
,因为我在下面使用了代码
ExpandableListAdapter
但它显示了以下 private ExpandableListAdapter createAdapter(List<T> items) {
mergeAdapter = new MergeAdapter();
mergeAdapter.addAdapter(endlessFeedAdapter);
return (ExpandableListAdapter) mergeAdapter;
}
Excaption
来自Web服务的值
硬编码值
答案 0 :(得分:2)
什么阻止您制作2个不同的适配器并将它们添加到MergeAdapter?您可以向MergeAdapter和多个视图添加多个适配器。在这种情况下,不需要使用2个Listviews。
mergeAdapter.addAdapter(adapterHeading);
mergeAdapter.addView(someView);
mergeAdapter.addAdapter(adapterFooter);
listView.setAdapter(mergeAdapter);