我的问题是我想创建一个包含多个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多个复选框来说真的没有效果......
答案 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。