Android 重置ViewPager适配器问题 5C

使用ViewPager设置了一个FragmenPageAdapter适配器对应的是AFragment,当我点击按钮时
此时想把AFragment替换成BFragment,我的做法是把 adapter置空后再设置new一个适配器
此时适配器返回的是BFragment,但这时报错,错误信息如下

AFragment cannot be cast to BFragment

我明明把Adapter=null 并且重新new了一个Adapter,为什么ViewPager还是AFragment

2个回答

强制类型转换错误,意思是你等于说干了这么一件事:BFragment bfragment = new AFragment。你打个断点看看是那里把AFragment的对象复制给BFragmeng的对象了

pengguichu
养猫误码 回复zhangyanqiu12: 我的QQ373819491
2 年多之前 回复
zhangyanqiu12
zhangyanqiu12 回复pengguichu: 这种bug得自己去从代码里发现,看不到代码没法找Bug
2 年多之前 回复
zhangyanqiu12
zhangyanqiu12 回复pengguichu: 要不然你Q给我,我给你看看
2 年多之前 回复
zhangyanqiu12
zhangyanqiu12 回复pengguichu: 我打个比方把,A有俩子类,A1和A2,A内部有一个属性,是b。然后你把A2的对象赋值给一个A1的对象,请问,这个过程中,跟这个b属性是否重置有关系吗?
2 年多之前 回复
zhangyanqiu12
zhangyanqiu12 回复pengguichu: 你重置适配器跟Fragement有什么关系啊。
2 年多之前 回复
pengguichu
养猫误码 我是做了转换的操作,是因为我要更新BFragment,fm.getFragments(),这里获取的是AFragment,但是此前我已经重置适配器了,为什么获取到的还是AFragment
2 年多之前 回复

强制类型转换错误,意思是你等于说干了这么一件事:BFragment bfragment = new AFragmen();你打个断点看看是那里把AFragment的对象复制给BFragmeng的对象了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问