【问题标题】:Switch between onItemClick and onItemLongClick event of Android ListViewAndroid ListView 的 onItemClick 和 onItemLongClick 事件之间的切换
【发布时间】:2013-10-23 08:10:16
【问题描述】:

想问一下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;
            }

        });

【问题讨论】:

    标签: android android-listview onitemclicklistener


    【解决方案1】:

    在 OnItemLongClick 结束时返回 boolean true。

    【讨论】:

    • 来自de文档:“如果回调消耗了长按,则为true,否则为false”
    【解决方案2】:

    根据 OnItemLongClickListener 的documentation

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2013-11-06
        相关资源
        最近更新 更多