zoukankan      html  css  js  c++  java
  • selectAll, unSelectAll两个操作的实现

    private void updateBatchSelectionStatus() {
        ContactListAdapter.ViewHolder viewHolder = null;
        TxrjContact contact = null;
        int size = mContacts.size();
        boolean select = (getSelectCount() == mContacts.size() ? true : false);
        for(int i=0;i<size;i++){
            viewHolder = (ContactListAdapter.ViewHolder)mListView.getChildAt(i).getTag();
            contact = mContacts.get(i);
            contact.setSelected(select);
            viewHolder.select
                    .setImageBitmap(select ? mListAdapter.checkBox
                            : mListAdapter.unCheckBox);
        }
    }

    红色语句出现空指针异常,原因分析:

    mContacts可能有100个TxrjContact,但是mListView不可能一下子有100个child,每次只显示可视区域中的几个view。

    将以上方法改写成

    private void updateBatchSelectionStatus() {
        int size = mContacts.size();
        boolean select = (getSelectCount() != mContacts.size() ? true : false);
        for(int i=0;i<size;i++){
            mContacts.get(i).setSelected(select);
            mListAdapter.notifyDataSetChanged();
        }
    }

    再执行就符合预期效果

    点击事件处理程序

    } else if(v == mSelectAll) {
        updateBatchSelectionStatus();
        updateSelectButtonText();
    }

  • 相关阅读:
    字符串 date 转标准 yyyyMMdd 格式
    stringBuild置空方法
    composer 加速
    php7.0 Mongodb 查询
    PHP7 mongo 操作
    php 简单的对称加密
    PHP 百度关键字
    php redis 写入读取的两个class
    php ci 框架自定义函数
    app已损坏,打不开,你应该将它移动到废纸篓
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3188896.html
Copyright © 2011-2022 走看看