合并两个适配器以在列表视图中显示每个适配器

时间:2013-11-28 12:58:45

标签: android listview android-adapter

我有两个适配器,我想在一个ListView中将它们合并在一起。所以我可以显示一个。 示例

Adapter1 , Adapter2.

ListView 
getView(position = 0) -> from Adapter1
getView(position = 1) -> from Adapter2
getView(position = 2) -> from Adapter1
getView(position = 3) -> from Adapter2
getView(position = 4) -> from Adapter1

我看到Commonsware的Merge Adapter它以与你添加适配器相同的顺序显示项目。例如:mergeadapter.addAdapter(adapter1); mergeadapter.addAdapter(adapter2);然后它会显示所有的adapter1项目然后显示所有的adapter2项目,在我写的例子中没有办法显示每个相似的项目。

2 个答案:

答案 0 :(得分:1)

有一个很棒的组件可以做到这一点(你可以合并适配器和单个视图)

https://github.com/commonsguy/cwac-merge

答案 1 :(得分:0)

您应该为每个适配器使用数据 source 来填充第三个主适配器。这是一个非常基本的String`示例:

String[] dataSource1 = { "One", "Three" };
String[] dataSource2 = { "Two", "Four"};
String[] dataSource3 = new String[4];
int index = 0;
for(int i=0; i< dataSource1.length; i++) {
    dataSource3[index++] = dataSource1[i];
    dataSource3[index++] = dataSource2[i];
}
// dataSource3 == { "One", "Two", "Three", "Four" }
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.itemlayout, dataSource3);

就像我说的那样,这是非常基本的,根本不会扩展,但它说明了你需要做的事情。