Невозможно динамически добавлять / удалять элементы в Gridview, используя пользовательский адаптер

Я работаю над gridview в Android, но я не могу решить сценарий, в котором я нахожусь, мне нужна небольшая помощь для добавления и удаления элементов в gridview .

Хорошо, во-первых, я показываю только 5 изображений в gridview, не более того, и я получаю изображения с сервера, и иногда сервер отправляет только два изображения, и они отображаются хорошо, но все же у меня есть возможность добавить еще три изображения из моей галереи и загрузить снова,

структура, которую я пытаюсь построить,

1-Если у меня всего пять изображений с сервера, то я не буду показывать кнопку добавления в последнем элементе gridview, а если у меня есть не более 5 изображений с сервера, gridview покажет дополнительный последний элемент с кнопкой add при нажатии что это займет для сборщиков изображений....

пока я достиг этого, теперь, когда я застрял, когда у меня есть 5 фото, я хочу удалить любой элемент, пусть предположим по индексу 2, поэтому, когда я нажимаю кнопку "Удалить", он должен удалить этот элемент в виде сетки и показать дополнительная кнопка добавления, так что она удовлетворяет требованию загрузки 5 фото, вот мой код. gridviewitem.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:padding="10dp"
android:layout_height="100dp">


<ImageView
    android:id="@+id/edit_img"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@drawable/add_btn_placeholder" />

<ImageButton
    android:id="@+id/btn_close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@color/transparent"
    android:src="@drawable/ic_close_round"
    />

CustomAdapter.java

public class PictureAdapter extends BaseAdapter {

private final Context mContext;
private final List<EditPicItem> pictureList;
private boolean isPicAddedImgSet = false;


public PictureAdapter(Context context, List<EditPicItem> items) {
    this.mContext = context;
    this.pictureList = items;
}


@Override
public int getCount() {
        return pictureList.size();
}


@Override
public long getItemId(int position) {
    return 0;
}


@Override
public Object getItem(int position) {
    return null;
}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    if (convertView == null) {
        final LayoutInflater layoutInflater = LayoutInflater.from(mContext);
        convertView = layoutInflater.inflate(R.layout.gridviewitem, null);
    }


    final ImageView pic = convertView.findViewById(R.id.edit_img);
    final ImageButton delbtn = convertView.findViewById(R.id.btn_close);

    if(position == pictureList.size()){
        pic.setImageResource(R.drawable.add_btn_placeholder);
        return convertView;
    }
    EditPicItem item = pictureList.get(position);
    if(!item.isAddPic) {
        Picasso.with(mContext).load("urlxxxxx").into(pic);
        delbtn.setVisibility(View.VISIBLE);
        delbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                pictureList.remove(position);
                notifyDataSetChanged();
            }
        });
    }else{
        delbtn.setVisibility(View.GONE);
        pic.setClickable(true);
        pic.setFocusable(true);
        pic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            //StartActivityforresult #imagePicker
                notifyDataSetChanged();
            }
        });
    }



    return convertView;
}

}

Теперь я хочу, чтобы у меня было менее 5 изображений. В виде сетки должно отображаться добавление к последнему элементу таблицы, а при выборе нового изображения должно обновляться положение, а при удалении также должно обновляться положение и поддерживаться ограничение 5. Максимум изображений, я много искал, но пока смог. любая помощь будет оценена, спасибо.

0 ответов

Другие вопросы по тегам