zoukankan      html  css  js  c++  java
  • android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法

    今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化。最后发现原因是 ListView滚动时自动调用 onCheckedChanged 导致的。在查看了各种博客的解决办法后,国外的网站上有一个办法解决了我的问题。写下来分享一下。

    在自定义Adapter的getView方法中这样写就行了。

    Java代码  收藏代码
    1. //在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件设置为null  
    2. holder.checkBox.setOnCheckedChangeListener(null);  
    3. //然后设置CheckBox状态  
    4. if(isChecked) {  
    5.     holder.checkbox.setChecked(true);  
    6. else {  
    7.     holder.checkbox.setChecked(false);  
    8. }  
    9. //然后设置状态变化监听事件  
    10. holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){   
    11.     @Override   
    12.     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {  
    13.         if(isChecked){   
    14.             //...  
    15.         }else{   
    16.             //....  
    17.         }  
    18.     }   
    19. });   
  • 相关阅读:
    C# 动态加载卸载 DLL
    C# 判断文件编码
    win10 uwp 如何拖动一个TextBlock的文字到另一个TextBlock
    C# TextBlock 上标
    PHP curl_getinfo函数
    PHP curl_file_create函数
    PHP curl_errno函数
    PHP curl_error函数
    PHP curl_escape函数
    PostgreSQL Schema
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/4236014.html
Copyright © 2011-2022 走看看