Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnClickListener停止在适配器的viewHolder中工作,与ViewPagers一起使用_Android_Android Listview_Android Viewpager_Android Adapter_Android Adapterview - Fatal编程技术网

Android OnClickListener停止在适配器的viewHolder中工作,与ViewPagers一起使用

Android OnClickListener停止在适配器的viewHolder中工作,与ViewPagers一起使用,android,android-listview,android-viewpager,android-adapter,android-adapterview,Android,Android Listview,Android Viewpager,Android Adapter,Android Adapterview,我有一个PagerView,在寻呼机里面有列表视图 在ViewPager的PagerAdapter中的每个实例化的ItemViewGroup集合int position func中,我调用一个AsyncTask来填充当前PagerItem中的ListView 因此,我得到了一个水平滚动区域,其中包含ListView,每个ListView中包含不同的项目 在AsyncTask的onPostExecute func上,设置一个适配器,用于配置我的ListView中的项 重要部分:我在适配器内为我的V

我有一个PagerView,在寻呼机里面有列表视图

在ViewPager的PagerAdapter中的每个实例化的ItemViewGroup集合int position func中,我调用一个AsyncTask来填充当前PagerItem中的ListView

因此,我得到了一个水平滚动区域,其中包含ListView,每个ListView中包含不同的项目

在AsyncTask的onPostExecute func上,设置一个适配器,用于配置我的ListView中的项

重要部分:我在适配器内为我的ViewHoler视图设置了3个不同的OnClickListener

因此,机制和问题是: 用户滚动屏幕,在页面间切换。 滚动到新页面时,相关的AsyncTask会触发,填充currentListView,并调用适配器将其设置为listView,配置其视图

问题很简单,但对我来说却很困惑: 当我第一次滚动到页面时,我在适配器中设置的所有onClickListener都工作得很好。ListView中的所有项目都响应良好,工作正常

问题:在这之后,我从这个页面滚动2-3页,然后返回到我测试OnClick方法的页面。 错误来了:

OnClickListeners从这一点上看是不起作用的,它们就像我没有设置它们一样,我在ListView中的视图从这一点上来说是不负责任的

看起来适配器不知何故忘记了OnClickListeners,或者类似的东西


如果你有任何建议,请随时告诉我。如果您想告诉我哪个部分,我会显示代码,因为这个问题与这么多类相关。

将日志添加到InstanceItemViewGroup集合,int position,您将得到它。。。如果在移动了超过GetOffscreenPagilemit的页面后返回到第一个视图,那么第一个视图与第一次创建的视图不同,我认为这是因为侦听器设置在其他视图上。当你在第三个视图中滑动2个项目和r时,你的侦听器就会丢失。是这样吗?当您滑动到第三项时,即为viewpager的第一项调用ondestroyview。如果您为适配器提供dome代码…@Selvin如果您添加此作为答案,我将接受它;问题解决了。