如何使用另一个复选框或按钮检查gridview中的所有复选框

时间:2013-06-27 03:33:07

标签: android button gridview checkbox

我知道这个问题很熟悉,但我需要帮助。我不知道为什么我的代码返回一个空指针。到目前为止我到了这里:

    final GridView imagegrid = (GridView) findViewById(R.id.grid_GalleryImage);
    imageAdapter = new ImageAdapter();
    imagegrid.setAdapter(imageAdapter);

    // Check All

    Button btnCheckAll = (Button) findViewById(R.id.btn_SelectAll);
    btnCheckAll.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                int count = imagegrid.getAdapter().getCount();
                for (int i = 0; i < count; i++) {
                    LinearLayout itemLayout = (LinearLayout)imagegrid.getChildAt(i); // Find by under LinearLayout
                    CheckBox checkbox = (CheckBox)itemLayout.findViewById(R.id.cbo_CheckImage);
                    checkbox.setChecked(true);
                } 
            }
    });

1 个答案:

答案 0 :(得分:1)

Inside Adapter类将getView更改为:

public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater in = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView =  in.inflate(R.layout.inflator, null);
CheckBox c = (CheckBox) convertView.findViewById(R.id.checkBox);
c.setId(position);

return convertView;

}

在onClickListener中:

btnCheckAll.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            int count = imagegrid.getAdapter().getCount();

            for (int i = 0; i < count; i++) {
              CheckBox c = (CheckBox) gridView.findViewById(i);
              c.setChecked(true); 
            }
});