【问题标题】:Adding two list in a single ListView having different adapters在具有不同适配器的单个 ListView 中添加两个列表
【发布时间】:2015-08-22 19:46:59
【问题描述】:

我想在一个列表视图中添加两个列表。两者都有不同的适配器。

我刚刚找到了这个,但我想要别的东西

how can set two adapter into a list?

我想要这样的列表视图

有可能吗..

【问题讨论】:

  • 为什么需要 2 个适配器?
  • 同一列表视图中的两个不同视图
  • 为什么不简单地膨胀另一个 xml?
  • 如果您只想使用 2 个不同的视图,请使用带有 2 个视图类型的适配器。阅读这篇文章了解更多详情stackoverflow.com/questions/13297299/…
  • 这是一个文件夹 + 歌曲视图,我有一个用于文件夹的适配器和另一个用于歌曲的适配器。

标签: java android listview android-adapter


【解决方案1】:

你需要覆盖 getItemViewType 和 getViewTypeCount。

@Override
public int getViewTypeCount() {
   return 2;
}

@Override
public int getItemViewType(int position) {
   int type=0;
   if(getItem(position).isFolder())
     type=1;
   else{
     type=2;
   }
}

然后你将你的 xml 文件膨胀为 2 个项目。请查看此链接。

Add headers in a listView using ArrayAdapter

你还创建了两个项目的通用模型。

public class CommonModel
{
   private FolderItem folderItem;
   private RadioItem radioItem;
   //getter and setter
}

例如,如果 myList.get(position).getFolderItem 等于 null,则您返回歌曲项目类型并扩充您的歌曲视图。

【讨论】:

  • 但是这个只使用了一个适配器,我想使用两个适配器。
  • 我不明白为什么你需要两个适配器?我认为您应该使用单个适配器,并且您的适配器型号包括两个项目类型。我更新了添加到简单模型的答案。
  • 我也有同样的问题@user3307005 我的数组适配器中有一些硬编码的值,我想从另一个适配器的 firebaselistadaptor 中添加值并将它们显示在一个 Lakeview 中。我可以这样做吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2018-11-22
相关资源
最近更新 更多