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获取的数据不对。

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





  • 相关阅读:
    将maven项目托管到github
    HDOJ_1215_七夕节
    HDOJ_1108_最小公倍数
    HDOJ_1061_Rightmost Digit
    HDON_1021_Fibonacci Again
    HDOJ_1008_Elevator
    HDOJ_1235_统计同成绩学生人数
    HDOJ_2006_求奇数的乘积
    HDOJ_1201_18岁生日
    HDOJ_1019_大二写_Least Common Multiple
  • 原文地址:https://www.cnblogs.com/platte/p/3741131.html
Copyright © 2011-2022 走看看