我有一个PagerView,在寻呼机里面有ListViews。
在ViewPager 的 PagerAdapter中的每个instantiateItem(ViewGroup collection, int position)
函数中,我调用一个AsyncTask 来填充当前 PagerItem 中的 ListView。
所以我得到了一个带有 ListViews 的水平滚动区域,每个 ListView 中有不同的项目。
在AsyncTask 的 onPostExecute()
func 中,设置了一个 Adapter,用于配置我的 ListViews 中的项目。
重要部分:我在适配器内为 ViewHoler 的视图设置了3 个不同的 OnClickListener。
所以机制和问题是:
用户滚动屏幕,在 PagerItems 之间切换。当滚动到新页面时,相关的 AsyncTask 触发,填充 currentListView,并调用一个 Adapter 将其设置为 listView,配置其 Views。
问题很简单,但让我很困惑:
当我第一次滚动到一个页面时,我在 Adapter 中设置的所有 OnClickListener 都工作得很好。ListView 中的所有项目都具有响应性并且运行良好。
问题:在此之后,我从该页面滚动 2-3 页,然后滚动回我正在测试 OnClick 方法的页面。错误来了:
OnClickListeners 从这一点开始不起作用,它们就像我没有设置它们一样,我在 listViews 中的视图从这一点开始不负责。
看起来适配器以某种方式“忘记”了 OnClickListener 或其他类似的东西。
如果您有任何提示,请随时给我建议。如果您只想告诉我哪一部分,我会显示代码,因为这个问题与很多类有关。