在Android ListView中切换onItemClick和onItemLongClick事件

12

我想问如何在列表视图中切换和选择仅一个事件。我的下面的代码是有效的。但是当OnItemLongClick触发时,OnItemClick也会触发。我该如何切换事件以便仅检测到一个事件:

lstResult.setOnItemClickListener(new OnItemClickListener()
        {
            @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                // TODO Auto-generated method stub

                //showToast(arg0.getItemIdAtPosition(position) +  "");
                 String str = searchWhere(lstResult.getItemAtPosition(position) + "");
                 String word = lstResult.getItemAtPosition(position).toString();
                 showDialog(word,str);
            }

        });
        lstResult.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                // TODO Auto-generated method stub
                showToast(lstResult.getItemAtPosition(position) + "");
                return false;
            }

        });
3个回答

27

在 OnItemLongClick 结尾处返回布尔值 true。


1
来自文档:如果回调函数消耗了长按事件,则为true,否则为false。 - David Untama

8
根据OnItemLongClickListener的文档:
如果回调消耗了长按事件,返回true;否则返回false。
若长按事件已被触发,应返回true。

1
当您在OnItemLongClickListener上返回false时,这不会被触发,因此您可以定义一个布尔变量在监听器之间进行切换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接