Android OnItemClickListener重写OnItemLongClickListener

Android OnItemClickListener重写OnItemLongClickListener,android,Android,我正在尝试为ListView实现上下文操作模式。我阅读了android开发者文档,对此我没有任何问题。问题发生在我测试应用程序时,我意识到,上下文菜单会显示出来,但当我释放鼠标时,单击监听器就会触发。我不知道如何使onlongclicklistener在调用onclicklister时禁用它。 下面是侦听器的代码 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Ove

我正在尝试为ListView实现上下文操作模式。我阅读了android开发者文档,对此我没有任何问题。问题发生在我测试应用程序时,我意识到,上下文菜单会显示出来,但当我释放鼠标时,单击监听器就会触发。我不知道如何使onlongclicklistener在调用onclicklister时禁用它。 下面是侦听器的代码

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            Category item = (Category) listView.getItemAtPosition(position);
            itemId = item.getId();
            startActionMode(mActionModeCallback);
            return false;
        }
    });

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Category category = (Category) listView.getItemAtPosition(position);
            itemDetailPage(category);
        }
    });
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
类别项=(类别)listView.getItemAtPosition(位置);
itemId=item.getId();
startActionMode(mActionModeCallback);
返回false;
}
});
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Category Category=(Category)listView.getItemAtPosition(position);
itemDetailPage(类别);
}
});

您应该在LongClickListener上返回true:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            Category item = (Category) listView.getItemAtPosition(position);
            itemId = item.getId();
            startActionMode(mActionModeCallback);
            return true;
        }
    });
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
类别项=(类别)listView.getItemAtPosition(位置);
itemId=item.getId();
startActionMode(mActionModeCallback);
返回true;
}
});

您应该在LongClickListener上返回true:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            Category item = (Category) listView.getItemAtPosition(position);
            itemId = item.getId();
            startActionMode(mActionModeCallback);
            return true;
        }
    });
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
类别项=(类别)listView.getItemAtPosition(位置);
itemId=item.getId();
startActionMode(mActionModeCallback);
返回true;
}
});

Make
返回true
中长按
使
返回true
中长按