我的屏幕上显示了一个列表视图。
当我单击一个项目(使用 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);
});