Android - 从 GridView/Adapter 中删除项目
Posted
技术标签:
【中文标题】Android - 从 GridView/Adapter 中删除项目【英文标题】:Android - Removing Item from GridView/Adapter 【发布时间】:2014-01-11 00:40:26 【问题描述】:我有一个由适配器填充的 GridView
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
Adapter的数据集基本就是一个shuffle List
static List<Integer> mTlist = Arrays.asList(
R.drawable.ac_pre, R.drawable.acc_pre,
R.drawable.acd_pre, R.drawable.ach_pre,
R.drawable.acs_pre, R.drawable.ad_pre,
R.drawable.ah_pre, R.drawable.as_pre,
R.drawable.dc_pre, R.drawable.dd_pre,
R.drawable.dh_pre, R.drawable.ds_pre,
R.drawable.fc_pre, R.drawable.fd_pre,
R.drawable.fh_pre, R.drawable.fs_pre,
R.drawable.jc_pre, R.drawable.jd_pre,
R.drawable.jh_pre, R.drawable.js_pre,
R.drawable.kc_pre, R.drawable.kd_pre,
R.drawable.kh_pre, R.drawable.ks_pre,
R.drawable.nc_pre, R.drawable.nd_pre,
R.drawable.nh_pre, R.drawable.ns_pre,
R.drawable.qc_pre, R.drawable.qd_pre,
R.drawable.qh_pre, R.drawable.qs_pre,
R.drawable.sec_pre, R.drawable.sed_pre,
R.drawable.seh_pre, R.drawable.ses_pre,
R.drawable.sic_pre, R.drawable.sid_pre,
R.drawable.sih_pre, R.drawable.sis_pre,
R.drawable.vc_pre, R.drawable.vd_pre,
R.drawable.vh_pre, R.drawable.vs_pre,
R.drawable.xc_pre, R.drawable.xd_pre,
R.drawable.xh_pre, R.drawable.xs_pre,
R.drawable.zc_pre, R.drawable.zd_pre,
R.drawable.zh_pre, R.drawable.zs_pre
);
private void mischen()
Collections.shuffle(mTlist);
在按下按钮后从不同的活动中我想删除一个项目
ImageAdapter imad = new ImageAdapter(getBaseContext());
Bundle extras = getIntent().getExtras();
Integer pos = extras.getInt("draw");
ImageAdapter.mTlist.remove(pos);
imad.notifyDataSetChanged();
finish();
pos 是 List (mTlist);
中项目的位置,finish()
我回到 GridView-Activity。
但问题是,根本没有任何变化!我举杯检查了移除后位置上的项目,它和以前一样。
请帮忙! 问候你
【问题讨论】:
你的方法不正确。使用 startActivityForResult 返回要从适配器中删除的所需项目。你可以从这里得到一个想法***.com/a/10407371/786337 好的,试过了——现在应用崩溃了…… 我想我把附加功能弄错了,修复了它,它又什么也没做......好吧,除了删除工作之外的一切 【参考方案1】:您要求列表删除 Integer 类型的对象,这是不正确的,因为您使用的是 ArrayList。尝试以下方法删除您的对象
ImageAdapter.mTlist.remove(pos.intValue());
问候。
【讨论】:
但是使用“new ImageAdapter”我创建了一个新的适配器! ok 将列表切换到另一个类,因此不会因为设置一个新的适配器(您的建议)而搞砸,但仍然没有删除任何内容.... 检查编辑后的答案。您在传递要删除的 Integer 对象时犯了错误。希望它能解决问题。以上是关于Android - 从 GridView/Adapter 中删除项目的主要内容,如果未能解决你的问题,请参考以下文章