我的屏幕上显示了ListView。
当我点击某个项目(使用setOnItemClickListener)时,您可以重命名它。
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick() {}
当我按住某个项目时(使用setOnItemLongClickListener),您可以将其删除。
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick() {}
但是,当我按住某个项目时,它会显示“重命名”窗口和“删除”窗口,就像两个都被触发一样。
关于如何防止这种情况的任何想法?
非常感谢
答案 0 :(得分:1)
试试这个
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
return true; //<-- this should be TRUE, not FALSE
}
答案 1 :(得分:1)
Input Events这会返回一个布尔值,表示你是否已经消耗了这个事件而且不应该进一步携带它。
如果它返回true表示您已经处理了该事件并且它应该在此停止。
如果您没有处理它,则返回false,并且该事件应该继续到任何其他点击监听器。
答案 2 :(得分:0)
您可以使用setTimeout和.bind以最短的逻辑来修复您的问题:
var timeoutId = 0;
$('#myElement').mousedown(function() {
timeoutId = setTimeout(myFunction, 1000);
}).bind('mouseup mouseleave', function() {
clearTimeout(timeoutId);
});