保持事件触发单击事件



我的屏幕上显示了一个列表视图。

当我单击一个项目(使用 setOnItemClickListener)时,您可以重命名它。

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick() {}

当我按住一个项目(使用 setOnItemLongClickListener)时,您可以删除它。

listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick() {}

但是,当我按住一个项目时,它会显示"重命名"窗口和"删除"窗口,就好像两者都被触发了一样。

关于如何防止这种情况的任何想法?

多谢

试试这个

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
            int position, long id) {
    return true; //<-- this should be TRUE, not FALSE   
}

输入事件 这将返回一个布尔值,以指示您是否已使用该事件,并且不应进一步携带该事件。

如果它返回 true 表示您已处理该事件,则应在此处停止。

如果它返回 false,如果您尚未处理它,则该事件应继续到任何其他单击侦听器。

您可以使用 setTimeout 和 .bind 以最短的逻辑量解决问题:

var timeoutId = 0;
$('#myElement').mousedown(function() {
    timeoutId = setTimeout(myFunction, 1000);
}).bind('mouseup mouseleave', function() {
    clearTimeout(timeoutId);
});

相关内容

  • 没有找到相关文章

最新更新