0

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

    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);
                } 
            }
    });
4

1 回答 1

1

在 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); 
            }
});
于 2013-06-27T06:09:49.910 回答