为什么我不能删除项目?

时间:2016-01-31 00:31:52

标签: java android arrays database string

我真的很沮丧,因为我今天已经尝试了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个小时,我真的非常需要你的帮助。

2 个答案:

答案 0 :(得分:0)

可以尝试使用View.OnItemLongClickListener()而不是AdapterView,并将OnItemLongClick()中的参数更改为View。

希望这会有所帮助......

答案 1 :(得分:0)

我遇到一个类似的问题,我的长期点击列表项目并未因特定情况而被识别。

当我的列表项文本视图包含可点击的超链接时,我正在发生这种情况。我能够点击超链接并且android会将我重定向到浏览器,但在这种情况下我的长按/单击不会被识别为整个项目选择,因此我的Actionmode也不起作用。

我试图通过以下链接解决它,希望它有所帮助

link 1

link 2