猿问

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

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

红颜莎娜

我认为应该放在isChecked被改变的地方toast。getView作用是为listview准备视图,当删除一个list条目时,肯定需要调用ArrayAdapter.notifyDataSetChanged(),继而getView被调用以提供新的视图,但这时isChecked并不一定会改变。

慕容708150

你adpter的每一个itemview的状态应该对应着相应的数据item啊,什么if(isChecked)啊。。不会类似于list.get(position).isChecked()吗?
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答