【发布时间】:2020-07-06 22:34:29
【问题描述】:
如何删除我的 gridView 列表中的选定项目? 现在我删除了我最后添加的元素。
@Override
public void onClick(View view) {
remove(personItems);
notifyDataSetChanged();
}
我试着这样做
public View getView(final int position, View convertView, ViewGroup parent) {
personItems = getItem(position);
...
public void onClick(View view) {
personItems.remove(position);
notifyDataSetChanged();
}
但是这样我不能从我的网格视图中删除元素
我的适配器的完整代码
public class CustomAdapter extends ArrayAdapter<PersonItems> {
PersonItems personItems;
static class ViewHolder {
TextView member_name;
ImageView profile_pic;
}
public CustomAdapter(Context context, ArrayList<PersonItems> users) {
super(context, R.layout.list_item, users);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
personItems = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.list_item, parent, false);
viewHolder.member_name = (TextView) convertView.findViewById(R.id.member_name);
viewHolder.profile_pic = (ImageView) convertView.findViewById(R.id.profile_pic);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.member_name.setText(personItems.name);
viewHolder.profile_pic.setImageResource(setImage());
Button buttonDelete = (Button) convertView.findViewById(R.id.buttonDelete);
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
remove(personItems);
notifyDataSetChanged();
}
});
return convertView;
}
public int setImage() {
switch (personItems.getName()) {
case Names.AII:
return R.drawable.profile;
case Names.VdV:
return R.drawable.vdm;
}
return 0;
}
}
【问题讨论】:
-
获取选中项的位置和关联视图的id
-
@gaurav 更新问题
-
能否分享完整的适配器代码
-
你能分享你遇到的错误吗
-
@PhanVanLinh 完成