[英]Why can't I remove an item?
我真的很沮丧,因为我今天已经尝试了 4 个小时,但找不到解决方案。 出于某种原因,我的长按监听器有时没有被检测到!
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
Toast.makeText(MainActivity.this, "Long click", Toast.LENGTH_SHORT).show();
contactArrayList.remove(pos);
arrayAdapter.notifyDataSetChanged();
return true;
}
});
这个简单的代码只是使用适配器从我的列表和数组列表中删除了一个项目。 但是,有时,甚至没有调用 onItemLongClickListener,甚至没有显示吐司! 我知道 android 正在检测它,因为每当我长按日志猫时都会收到此消息:
/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
那么为什么它只是有时有效? 我的代码有问题吗,或者这是android本身的问题? 如果是android的问题,我该如何解决?
它第一次工作,但在退出我的应用程序、旋转屏幕等后,长按停止被检测到。 我已经被困在这个问题上将近 8 个小时了,我真的、真的、真的需要你的帮助。
可以尝试使用View.OnItemLongClickListener()而不是AdapterView,并将OnItemLongClick()中的参数更改为View。
希望这可以帮助...
检查您是否真的从适配器内的数组中删除了该项目。
听起来您的侦听器在配置更改期间被破坏,或者并不总是被初始化。 确保每次都调用设置侦听器所属的代码块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.