如何从Android Gridview删除复选框

ld

我正在实现在Android grid-view中删除带有图像的复选框。我已经完成了删除选中的图像但是复选框仍然显示的方式。如何也从网格中删除复选框。有人可以帮助我解决这个问题用于复选框。
这是我的Adapter类中的getView()方法

*

@Override
        public View getView(final int position, View convertView, ViewGroup parent)
        {
           ViewHolder holder;
            if (convertView == null)
            {
                holder = new ViewHolder();
                convertView = mInflater.inflate(R.layout.add_post_grid_item_layout, parent , false);
                holder.image = (ImageView) convertView.findViewById(R.id.image);
                holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox);
                convertView.setTag(holder);
            }
            else
            {
                holder = (ViewHolder) convertView.getTag();
            }
            Bitmap myBitmap = BitmapFactory.decodeFile(fileName.get(position));
            holder.image.setImageBitmap(myBitmap);
            holder.checkbox.setTag(position);
            holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked);
                    int pos = (Integer) buttonView.getTag();
                    if (!buttonView.isChecked()) {
                        picsName.remove((String) fileName.get(pos));
                    } else if (buttonView.isChecked()) {
                        if (!picsName.contains((String) fileName.get(pos))) {
                            picsName.add((String) fileName.get(pos));
                        }
                    }
                    notifyDataSetChanged();
                }
            });
            return convertView;
        }

Activity类中的此删除按钮

 imgDeleteImagesFromGallery.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    int len = selectedItems.size() - 1;
                    for (int i = len; i > 1; i--)
                    {
                        fileName.remove(i);
                        fileName.remove((Integer) vh.checkbox.getTag(i));
                        if(checks.get(i)==1){
                            checks.remove(i);
                            i--;
                        }
                    }
                    gridAdapter.notifyDataSetChanged();
                    gridView.clearChoices();
                }
            });

这是行xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="1dp"
    android:background="@android:color/transparent">

    <ImageView
        android:id="@+id/image"
        android:layout_width="115dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:scaleType="fitXY" />

    <CheckBox
        android:id="@+id/itemCheckBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />


</RelativeLayout>

初始化selectedPic数​​组以存储在适配器上选择的图像

private ArrayList<Integer> selectedPic = new ArrayList<Integer>();

创建此方法以跟踪适配器类上的选定复选框位置

public ArrayList<Integer> getSelectedChecckedImages() {
        return selectedPic;
    }

    public void clearSelectedCheckedImages() {
        selectedPic.clear();
    }

适配器类的getView

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    layout = convertView;
    ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.add_post_grid_item_layout, parent, false);
        holder.image = (ImageView) convertView.findViewById(R.id.image);
        holder.text = (TextView) convertView.findViewById(R.id.text);
        holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    Bitmap myBitmap = BitmapFactory.decodeResource(mConext.getResources(), data.get(position));
    holder.image.setImageBitmap(myBitmap);
    holder.text.setText("" + position);
    holder.checkbox.setTag(position);
    holder.checkbox.setChecked(selectedPic.contains(data.get(position)));
    holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            int pos = (Integer) buttonView.getTag();
            if (!buttonView.isChecked()) {
                selectedPic.remove(data.get(pos));
            } else if (buttonView.isChecked()) {
                if (!selectedPic.contains(data.get(pos))) {
                    selectedPic.add(data.get(pos));
                }
            }
        }
    });
    return convertView;
}

活动中的删除按钮事件

@Override
    public void onClick(View v) {
        for (Integer obj : adapter.getSelectedChecckedImages()) {
            data.remove(obj);
        }
        adapter.clearSelectedCheckedImages();
        adapter.notifyDataSetChanged();
    }

让我知道您是否还有任何问题,我会帮助您

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选中后如何删除复选框

来自分类Dev

如何删除动态生成的复选框?

来自分类Dev

如何删除复选框的默认图像

来自分类Dev

如何删除重复的复选框

来自分类Dev

如何从jcheckbox中删除复选框

来自分类Dev

javascript & html - 如何删除复选框

来自分类Dev

如何使用JavaScript检查GridView中的复选框

来自分类Dev

如何处理GridView中的复选框

来自分类Dev

如果没有选择要上传的文件,如何从复选框中删除复选框?

来自分类Dev

Android ListView与复选框删除/获取行ID

来自分类Dev

在Gridview中选中一个复选框后,会选中(取消)多个复选框-Android

来自分类Dev

在Gridview中选中一个复选框后,会选中(取消)多个复选框-Android

来自分类Dev

如何使用复选框删除列表视图项?

来自分类Dev

如何通过复选框删除多个MySQL条目?

来自分类Dev

如何使用jQuery删除输入复选框

来自分类Dev

如何使用复选框删除多个条目?(PHP)

来自分类Dev

如何在复选框中添加/删除选中的属性?

来自分类Dev

如何使用左侧的复选框从地图上删除标记?

来自分类Dev

POST后如何从SESSION中删除复选框值?

来自分类Dev

如何从此javascript代码中删除复选框

来自分类Dev

如何使用php中的复选框删除记录?

来自分类Dev

如何使用复选框删除多条记录?

来自分类Dev

如何删除所选复选框的禁用属性?

来自分类Dev

如何使用jQuery删除HTML复选框

来自分类Dev

如何从表中删除所选的复选框

来自分类Dev

如何删除复选框中的表的行单击?

来自分类Dev

如何使用复选框列从DataGridView删除多个项目

来自分类Dev

jQuery:删除复选框后如何回调/还原

来自分类Dev

如何使用复选框删除列表视图项?

Related 相关文章

热门标签

归档