我正在尝试从 ListViewAdapter 中删除一个项目,我已经实现了我的 setOnItemLongClickListener
执行此操作:
getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Toast.makeText(getActivity(), "On long click listener", Toast.LENGTH_LONG).show();
return true;
}
});
它向我显示了一个Toast,验证它是否检测到onClickListener
,我尝试将其删除:mItems.remove(arg2);
,但没有任何反应.. .我正在寻找正确的答案,我发现我必须调用 notifyDataSetChanged()
,但由于我无法调用此方法,所以我尝试了这个:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.ofertasRefresh:
mItems.notifyAll();
return true;
default:
return super.onOptionsItemSelected(item);
}
但是什么也没发生,LogCat 上没有错误,应用程序没有崩溃,什么也没有......你们能告诉我我错过了什么吗?
最佳答案
你应该这样做-
//作为类成员
ListViewDemoAdapter myAdapter;
然后在方法中-
myAdapter = new ListViewDemoAdapter(getActivity(), mItems);
setListAdapter(myAdapter);
现在在 onItemClickListener 中,
mItems.remove(arg2);
myAdapter = new ListViewDemoAdapter(getActivity(), mItems);
setListAdapter(myAdapter);
请注意,这不是最好的解决方案,但它应该适合您的情况。
关于java - Android - 从 ListViewAdapter 中删除项目然后刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237773/