zoukankan      html  css  js  c++  java
  • ListView配合CheckBox出现position位置错误的解决

          最近做checkBox和ListView配合使用,想把position的位置传入到 checkBox的onCheckedChanged,于是我就在getView的时候,
    把position通过checkbox的setTag给设置进去,然后从onCheckedChanged里面通过getTag取出来,可是有时候,position会出现错误。
    百思不得其解。   
         后来想,设置这个值的地方和获取这个值的地方加入打印。发现值都是对的。后来,灵光一现,发现在getView的时候,调用了checkbox的
    setChecked,代码如下:

    public View getView(int position, View convertView, ViewGroup parent) {
            ......
            ......
            holder.checkBox.setChecked(ischeck);
            holder.checkBox.setTag(R.id.checkbox, position);

            
    }

        问题就在于我们先调用了setChecked,这个调用会触发onCheckedChanged,这个时候,我们的最新数据,还没通过setTag设置进去,
    所以,就会造成在onCheckedChagned获取的数据不对。

        这个问题,告诉我,写代码的时候,一定要注意运行的流程,特别是有回调函数的情况。





  • 相关阅读:
    pinyin4j使用示例
    迭代器模式
    适配器模式
    策略模式
    装饰模式
    责任链模式
    命令模式
    中介者模式
    原型模式
    代理模式
  • 原文地址:https://www.cnblogs.com/platte/p/3741131.html
Copyright © 2011-2022 走看看