【发布时间】:2011-03-15 15:29:03
【问题描述】:
背景:
我有一个基于相当复杂的 Adapter 类的 GridView,它扩展了 BaseAdapter。我发现我在 getView 中做了太多的工作来计算要显示的内容,而且在这些计算过程中我想要显示的项目数量通常会发生变化。 getView 甚至会为同一个位置多次调用。似乎 notifyDataSetChanged() 被调用得太早了。
这给我的编码带来了很大的痛苦。我将大部分代码移到其他例程中,但发现我仍然需要在最终显示期间对选择进行一些过滤。
我已经通过设置 item.enabled(false) 来解决这个问题,它可以工作,但我宁愿将这个项目全部删除。
我找不到 GridView 和底层适配器的生命周期,但我确定 getCount() 在项目显示之前被调用了多次虽然我可以将我的更改挂在那里,但感觉就像我不得不在这里工作太努力了。
问题:
我可以将 Filter 类与绑定到 GridView 的 Adapter 连接使用吗?
例如,我的 GridView 适配器有 36 个要显示的项目,包含它的 Activity 的 TextView 设置为值“3”,这意味着只显示每第 3 项。 adapter.notifyDataSetChanged() 被调用并立即 .getCount() 想要返回 36,这真的与 getView
我知道这里没有很多细节,因为我需要理解概念,而不仅仅是为特定问题找到解决方案。
必须有一些功能或方法来查看我忽略的问题。
【问题讨论】:
标签: android gridview filter adapter