gpt4 book ai didi

android - 具有不同单元格类型的 ListView?

转载 作者:行者123 更新时间:2023-11-29 16:07:22 26 4
gpt4 key购买 nike

直到现在,我使用 SimpleAdapter 以这种方式填充我的 ListView:

// Example of a list with cells containing some text and an image
SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), list, R.layout.my_cell,
new String[] {"img", "title"}, new int[] {R.id.img, R.id.title});

list.setAdapter(mSchedule);

这个解决方案工作得很好,但我只能使用一种细胞,这里是 my_cell

有解决这个问题的办法吗?谢谢。

最佳答案

您需要覆盖一些适配器方法,最重要的是:getViewTypeCount() , getItemViewType() , 和 getView() .

getViewTypeCount()返回适配器中不同 View 类型的数量。
getItemViewType()返回适配器内特定位置的 View 类型。
getView()如果 convertView,则必须创建正确类型的 View 是null .
如果 convertView 不是 null , 根据 getViewTypeCount() 之前返回的信息,它将是正确的类型和 getItemViewType() .

附言@Rob 我所有的例子都很大,所以我会尽量简单地解释一下:假设您只有 2 种 View 类型。

  • getViewTypeCount()应该返回 2
  • getItemViewType()应返回 0 或 1,具体取决于 position范围。此方法将在 getView() 之前调用
  • getView()将以相同的方式调用 position用于调用 getItemViewType() 的参数.使用相同的 position您在 getItemViewType() 中使用的基于 -based 的算法确定应返回哪种 View 类型(您甚至可以在此处重复使用 getItemViewType())。然后检查是否convertView为空。
    • 如果为空,则创建正确类型的新 View 并绑定(bind)值。
    • 如果它不为空,只需重新使用它并绑定(bind)值。 Android 在重新使用 View 时会传递正确的 View 类型。

关于android - 具有不同单元格类型的 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com