繁体   English   中英

为什么我无法删除项目?

[英]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。

希望这可以帮助...

我遇到了类似的问题,我的长单击列表项在一种特殊情况下无法识别。

当我的列表项文本视图包含可点击的超链接时,这就是我的情况。 我能够单击超链接,而android将我重定向到浏览器,但是在这种情况下,我的长按/单击无法识别整个项目,因此我的Actionmode也无法使用。

我正在尝试通过以下链接解决此问题,希望对您有所帮助

链接1

连结2

检查您是否真的从适配器内的数组中删除了该项目。

听起来您的侦听器在配置更改期间被破坏,或者并不总是被初始化。 确保每次都调用设置侦听器所属的代码块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM