保持事件触发单击事件

时间:2016-05-30 11:31:51

标签: java android listview event-handling

我的屏幕上显示了ListView。

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

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

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

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

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

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

非常感谢

3 个答案:

答案 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);
});