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

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

开关的判定我写在了 Adapter 的 getView 里,当开关从关变成开会弹出一条toast

@Override
public View getView(final int pos, View convertView, ViewGroup parent) {
 if (isChecked) {
 Toast...;
 }
}

但是这样就会出现一个问题,比如说第0条数据是关的,第1条数据是开的,删除第0条数据,也会触发以上代码
因为 pos == 0 的开关状态变化了。

我想,可能不该在 getView 里用 pos 判定,但是在哪用什么呢

在 Activity 里监听 ListView 里的一个 Switch 吗,给个思路怎么写呢……
(我搜了一下,类似的基本还是在 getView 中更改 比如 或者 以及)


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


你adpter的每一个itemview的状态应该对应着相应的数据item啊,什么if (isChecked)啊。。
不会类似于list.get(position).isChecked()吗?

【热门文章】
【热门文章】