繁体   English   中英

全部在一组可扩展列表中默认选中的复选框

[英]all Check box selected by default in a group of an expandable list

我有一个包含以下内容的checkbox的可扩展列表:
MyCategory和其他othercategory

我希望默认情况下仅checkbox mycategory组的所有checkbox 有人可以帮我吗

这是我的下面的代码

我的BaseExpandableListAdapter类的getChildView方法

    @Override
public View getChildView(final int groupPosition, final int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
    LayoutInflater inflater = activity.getLayoutInflater();
    ViewHolder holder=null;

    final int mGroupPosition = groupPosition;
    final int mChildPosition = childPosition;

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.category_list_row, null);
        holder= new ViewHolder();
        holder.mCheckBox=(CheckBox)convertView.findViewById(R.id.category_Login);
        convertView.setTag(holder);
    }
    else {
        holder = (ViewHolder) convertView.getTag();
    }

    /*
     * You have to set the onCheckChangedListener to null
     * before restoring check states because each call to
     * "setChecked" is accompanied by a call to the
     * onCheckChangedListener
    */
    holder.mCheckBox.setOnCheckedChangeListener(null);

    if (mChildCheckStates.containsKey(mGroupPosition)) {
        /*
         * if the hashmap mChildCheckStates<Integer, Boolean[]> contains
         * the value of the parent view (group) of this child (aka, the key),
         * then retrive the boolean array getChecked[]
        */
        boolean getChecked[] = mChildCheckStates.get(mGroupPosition);

        // set the check state of this position's checkbox based on the
        // boolean value of getChecked[position]
        holder.mCheckBox.setChecked(getChecked[mChildPosition]);

    } else {

        /*
         * if the hashmap mChildCheckStates<Integer, Boolean[]> does not
         * contain the value of the parent view (group) of this child (aka, the key),
         * (aka, the key), then initialize getChecked[] as a new boolean array
         *  and set it's size to the total number of children associated with
         *  the parent group
        */
        boolean getChecked[] = new boolean[getChildrenCount(mGroupPosition)];

        // add getChecked[] to the mChildCheckStates hashmap using mGroupPosition as the key
        mChildCheckStates.put(mGroupPosition, getChecked);

        // set the check state of this position's checkbox based on the
        // boolean value of getChecked[position]
        holder.mCheckBox.setChecked(false);
    }

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

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            if (isChecked) {

                boolean getChecked[] = mChildCheckStates.get(mGroupPosition);
                getChecked[mChildPosition] = isChecked;
                mChildCheckStates.put(mGroupPosition, getChecked);
            } else {

                boolean getChecked[] = mChildCheckStates.get(mGroupPosition);
                getChecked[mChildPosition] = isChecked;
                mChildCheckStates.put(mGroupPosition, getChecked);
            }
        }
    });

    return convertView;
}

对于每个checkbock,

checkbox.setChecked(true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM