【问题标题】:Adapter in another adapter usage另一个适配器中的适配器用法
【发布时间】:2014-08-15 12:44:03
【问题描述】:

我有一个列表视图。此 ListView 有一个自定义适配器。我有 2 个项目类型,即标题和产品。 listview的第一项是标题,第二项有一个gridview(另一个适配器),第三项是标题,第四项是gridview ...等。一切都适用于 ListView 适配器。但是ListView的位置是混的。我的目的是获得位置 1,3,5,7,9... 并通过 0,1,2,3,4 获得 ArrayList 类别的项目...我编写了这样的代码:

holder.catId = 0;
if (position % 2 == 1) {
    holder.catId = this.mCategoryIds.get( (position - 1) / 2);
    Log.d("pos", "catId: " + holder.catId);
}

当我登录时,我可以获得第一个、第二个和第三个 catId,但之后 catId 不会根据位置而变化。是否有可能找到解决方案或存在替代方案?

【问题讨论】:

  • 那么,基本上你想将1,3,5,7,9,... 映射到0,1,2,3,4,... 对吧?
  • 其实是的。之后,我将通过 0,1,2,3,4... 得到 ArrayList 项...
  • ((position - 1) / 2) 会这样做。不知道为什么它不适合你。您是否尝试记录该值?
  • 是的,我可以登录。当我看到这些值时,它可以将 12 的第一个、第二个和第三个值记录为正确的。但其他人没有记录。

标签: android listview gridview android-listview


【解决方案1】:

我通过删除 ListView 适配器中的 ViewHolder 解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多