Android应用开发之Android ViewPager 重复数据问题的解决方法
白羽 2018-07-17 来源 :网络 阅读 1577 评论 0

摘要:本文将带你了解Android应用开发之Android ViewPager 重复数据问题的解决方法,希望本文对大家学Android有所帮助。




最近在做的新闻客户端用到了ViewPager,Android Studio如今集成的很好了,自动创建很多不必要写的代码。
在使用过程中碰到了一个很奇怪的事:ViewPager中加载的数据重复
具体的看图就明白了:


可以看到加载出来的数据,1、2页面出现了重复,而3恢复正常



根据这个回答解决了这个问题
下面来详细解释一下原因:

这就是问题所在。

我们来复习一下Java中static的生命周期吧:
(1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。?(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。?
问题就出在第二条
由于我的Item是静态变量,所以在创建下一个的时候“引用了”上一个的Item,Item在上一个创建完成的时候并没有被销毁或者清空而是被下一个所回收利用。在当前这个Item从网络获取数据之前,直接进行了Adapter显示了上一个的数据,而第三个由于回收机制被回收所以是重新从网络获取完数据之后再显示
当把Item的static去除之后

完美的修复了该问题:





  


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved