我有两个适配器,我想在一个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项目,在我写的例子中没有办法显示每个相似的项目。
答案 0 :(得分:1)
有一个很棒的组件可以做到这一点(你可以合并适配器和单个视图)
答案 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);
就像我说的那样,这是非常基本的,根本不会扩展,但它说明了你需要做的事情。