12

我想问一下如何在listview下切换并只选择一个事件。我下面的代码正在运行。但是当 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;
            }

        });
4

3 回答 3

27

在 OnItemLongClick 结束时返回布尔值 true。

于 2013-10-23T08:17:29.983 回答
8

根据 OnItemLongClickListener 的文档

如果回调消耗了长按,则返回 true,否则返回 false

true如果触发长按,您应该返回。

于 2013-10-23T08:18:09.690 回答
1

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

于 2013-10-23T08:15:40.097 回答