Android取消选中多个复选框

时间:2017-05-28 08:55:35

标签: android checkbox uncheck

我的问题是我想创建一个包含多个Checkbox的清单。最大的问题是我有超过100个复选框。我想要一个清除按钮,通过单击清除所有复选框。

我该怎么做?并举例说明如何解决它?

我知道的唯一方法是:

import pandas as pd

def create_df_predictions(extra_periods):
    """
    make a empty df for predictions  
    params: extra_periods = how many prediction in the future the user wants
    """
    df = pd.DataFrame({ 'model': ['a'], 'name_id': ['a'] })
    for col in range(1, extra_periods+1):
        name_col = 'forecast' + str(col)
        df[name_col] = 0

    return df

df1 = create_df_predictions(9) 
df2 = create_df_predictions(12)
list_df = [df1, df2]

但是这种方式对100多个复选框来说真的没有效果......

2 个答案:

答案 0 :(得分:0)

如果要将所有复选框保留在单个ViewGroup上,则可以通过获取该ViewGroup的所有子项并取消选中来完成。例如,父母'是包含所有复选框的布局。您可以通过以下方式取消选中:

 for (int i = 0; i < parent.getChildCount(); i++) {
        View view = parent.getChildAt(i);
        if (view instanceof CheckBox) {
            ((CheckBox) view).setChecked(false);
        }
    }

答案 1 :(得分:0)

我已经解决了。感谢@Tuby和@android_hub的想法 getChildCount()
特别感谢@Hammad Akram。现在它起作用了:D。我的代码现在:

    final LinearLayout ll = (LinearLayout)findViewById(R.id.ll_a320_main);
    final int ccount = ll.getChildCount();

    Button clear = (Button)findViewById(R.id.btn_a320_clear);
    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Toast.makeText(ACT_A320.this, "Child: "+ccount,Toast.LENGTH_LONG).show(); -- Test for checking count of Child
            for(int i=1; i<ccount;i++){
                v = ll.getChildAt(i);
                if(v instanceof CheckBox ){
                    ((CheckBox) v).setChecked(false);
                }
            }
        }
    });

现在检测到所有Checkbox并将其设置为false。