【问题标题】:How to prevent button onClick firing repeatly?如何防止按钮 onClick 重复触发?
【发布时间】:2011-08-31 14:46:30
【问题描述】:

我有一个同时设置 onLongClickListener 和 onClickListener 的按钮:

onLongClickListener :

                    @Override
                    public boolean onLongClick(View v) {
                            do something ...
                            return true;
                    }

onClickListener :

                    @Override
                    public void onClick(View v) {
                            do something else ...
                    }

当我长按按钮时,onLongClick 会重复触发 (有时当我释放按钮时 onClick 也会触发,这很奇怪@@") 我想要的是让 onLongClick 只触发一次长按。 所以我修改了代码:

onLongClickListener :

                    @Override
                    public boolean onLongClick(View v) {
                            do something ...
                            myButton.setLongClickable(false);
                            return true;
                    }

onClickListener :

                    @Override
                    public void onClick(View v) {
                            myButton.setLongClickable(true);
                            do something else ...
                    }

不幸的是,onLongClick 触发后 onClick 回调也被锁定了! 我不能再解锁按钮了:| 我的代码有什么问题?另外,为什么在长按后松开按钮时 onClick 有时会起作用?

【问题讨论】:

    标签: android button


    【解决方案1】:

    我有你需要的代码,请稍等片刻。

        btn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
              //DO STUFF GRAH!
            }
        });
        btn.setOnLongClickListener(new OnLongClickListener() {
            public boolean onLongClick(View v) {
                //OTHER STUFF
                return true;
            }
        });
    

    这对我来说很好。我做了一个 int 并 onLongClick 添加了一个并将其显示在敬酒中。总是加一,并且不做onClick(重置为0)。

    【讨论】:

    • Eclipse 耽误时间了,抱歉。
    • 其实和我原来的代码100%一样,但是还是不能在我的模拟器上运行:|
    • 您在哪个 API 级别进行测试?这对我来说在 2.2 上完美运行。
    猜你喜欢
    • 1970-01-01
    • 2016-10-27
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多