Java 在android中取消选中1个复选框时,如何取消选中全选复选框

Java 在android中取消选中1个复选框时,如何取消选中全选复选框,java,android,listview,checkbox,Java,Android,Listview,Checkbox,我想在我的项目中的功能,其中点击全选复选框列表中的所有复选框必须被选中,取消选中复选框的所有其他复选框必须被取消选中。我通过以下操作实现了此功能: /*in my main activity i have done this*/ cbSelectAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void

我想在我的项目中的功能,其中点击全选复选框列表中的所有复选框必须被选中,取消选中复选框的所有其他复选框必须被取消选中。我通过以下操作实现了此功能:

/*in my main activity i have done this*/

  cbSelectAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                for (int i = 0; i < resumeSearchList.size(); i++) {
                    resumeSearchList.get(i).setSelected(cbSelectAll.isChecked());
                }
                cvSearchResultListAdapter.notifyDataSetChanged();
            }
        });
    }
现在我的问题是,每当我取消选中列表中的任何复选框时,必须取消选中“全选”按钮。请帮忙


提前感谢

您可以在适配器的
holder.cbSelect.
上设置
OnCheckedChangeListener

holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
                    // here you can call listener to get notified 
            }
        });
    }
您可以让
侦听器在
活动中获得通知。

对于添加侦听器

1。创建一个
界面

public interface OnMyCheckBoxCheckedChangeListener {
    void onMyCheckBoxCheckedChange();
}
private OnMyCheckBoxCheckedChangeListener mOnMyCheckBoxCheckedChangeListener;

    public YourAdapter(..., ..., OnMyCheckBoxCheckedChangeListener onMyCheckBoxCheckedChangeListener) {
            mOnMyCheckBoxCheckedChangeListener = onMyCheckBoxCheckedChangeListener;
        }
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
                    mOnMyCheckBoxCheckedChangeListener.onMyCheckBoxCheckedChange(); 
            }
        });
    }
yourRecyclerView.setAdapter(new YourAdapter(..., ..., new OnMyCheckBoxCheckedChangeListener() {
    @Override
    public void onMyCheckBoxCheckedChange() {
        // you will get notified here.
    }
}));
2。在适配器的构造函数中添加参数:

public interface OnMyCheckBoxCheckedChangeListener {
    void onMyCheckBoxCheckedChange();
}
private OnMyCheckBoxCheckedChangeListener mOnMyCheckBoxCheckedChangeListener;

    public YourAdapter(..., ..., OnMyCheckBoxCheckedChangeListener onMyCheckBoxCheckedChangeListener) {
            mOnMyCheckBoxCheckedChangeListener = onMyCheckBoxCheckedChangeListener;
        }
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
                    mOnMyCheckBoxCheckedChangeListener.onMyCheckBoxCheckedChange(); 
            }
        });
    }
yourRecyclerView.setAdapter(new YourAdapter(..., ..., new OnMyCheckBoxCheckedChangeListener() {
    @Override
    public void onMyCheckBoxCheckedChange() {
        // you will get notified here.
    }
}));
3。要通知的调用接口:

public interface OnMyCheckBoxCheckedChangeListener {
    void onMyCheckBoxCheckedChange();
}
private OnMyCheckBoxCheckedChangeListener mOnMyCheckBoxCheckedChangeListener;

    public YourAdapter(..., ..., OnMyCheckBoxCheckedChangeListener onMyCheckBoxCheckedChangeListener) {
            mOnMyCheckBoxCheckedChangeListener = onMyCheckBoxCheckedChangeListener;
        }
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
                    mOnMyCheckBoxCheckedChangeListener.onMyCheckBoxCheckedChange(); 
            }
        });
    }
yourRecyclerView.setAdapter(new YourAdapter(..., ..., new OnMyCheckBoxCheckedChangeListener() {
    @Override
    public void onMyCheckBoxCheckedChange() {
        // you will get notified here.
    }
}));
4。从活动中设置适配器:

public interface OnMyCheckBoxCheckedChangeListener {
    void onMyCheckBoxCheckedChange();
}
private OnMyCheckBoxCheckedChangeListener mOnMyCheckBoxCheckedChangeListener;

    public YourAdapter(..., ..., OnMyCheckBoxCheckedChangeListener onMyCheckBoxCheckedChangeListener) {
            mOnMyCheckBoxCheckedChangeListener = onMyCheckBoxCheckedChangeListener;
        }
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
                    mOnMyCheckBoxCheckedChangeListener.onMyCheckBoxCheckedChange(); 
            }
        });
    }
yourRecyclerView.setAdapter(new YourAdapter(..., ..., new OnMyCheckBoxCheckedChangeListener() {
    @Override
    public void onMyCheckBoxCheckedChange() {
        // you will get notified here.
    }
}));

为列表的复选框添加一个check change监听器,当您的值为false时,取消选中select all复选框如何在此处设置监听器。您可以解释更多吗?