为了账号安全,请及时绑定邮箱和手机立即绑定

listview 数据变化触发了开关判定,怎么搞

listview 数据变化触发了开关判定,怎么搞

守着一只汪 2019-04-19 16:29:44
开关的判定我写在了Adapter的getView里,当开关从关变成开会弹出一条toast@OverridepublicViewgetView(finalintpos,ViewconvertView,ViewGroupparent){if(isChecked){Toast...;}}但是这样就会出现一个问题,比如说第0条数据是关的,第1条数据是开的,删除第0条数据,也会触发以上代码因为pos==0的开关状态变化了。我想,可能不该在getView里用pos判定,但是在哪用什么呢在Activity里监听ListView里的一个Switch吗,给个思路怎么写呢……(我搜了一下,类似的基本还是在getView中更改比如或者以及)
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我认为应该放在isChecked被改变的地方toast。getView作用是为listview准备视图,当删除一个list条目时,肯定需要调用ArrayAdapter.notifyDataSetChanged(),继而getView被调用以提供新的视图,但这时isChecked并不一定会改变。
                            
查看完整回答
反对 回复 2019-04-19
?
慕容708150

TA贡献1831条经验 获得超4个赞

你adpter的每一个itemview的状态应该对应着相应的数据item啊,什么if(isChecked)啊。。不会类似于list.get(position).isChecked()吗?
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 510 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号