【问题标题】:How to add onClickListener for a button after keep clicking on it for a while? [closed]持续单击一段时间后如何为按钮添加onClickListener? [关闭]
【发布时间】:2021-04-14 15:49:11
【问题描述】:

大家好,我是一名初学者 android 开发人员,我有一个问题,我还没有找到答案。例如,我想在单击按钮 1.5 秒后为按钮添加 onClickListener?

【问题讨论】:

  • 如果您需要延迟事件处理程序,可以使用setOnLongClickListener 方法。如果您需要精确设置间隔,您可以使用自定义setOnTouchListener。您能否更具体地提出您的问题并将您的一些代码添加到其中以便我们为您提供帮助?
  • 感谢您的回答,如果使用 instagram,您会更好地理解我,例如,当您单击一条消息时,它会打开一个新活动,但是当您继续单击它一段时间时,没有把你的手拉出来,你会得到一个有很多选项的对话框(删除对话,阻止......)
  • 看起来你想说如果你长按一个按钮一段时间就会发生这种情况,你可以使用View.OnLongClickListener 或者如你所说的 1.5 秒,你可以自定义定义时间限制如答案所示

标签: java android kotlin onclicklistener ontouchlistener


【解决方案1】:

Originally Answered

您无法为onLongClickListener() 定义自定义持续时间 相反,您应该使用 onTouchListener 并查看用户单击按钮的时间 当那个时间超过你的限制时,你的代码是这样的

Button your_button = findViewById(R.id.your_button_ID);
long time = 0;
    button.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN){
                time = (Long) System.currentTimeMillis();
            }
            else if(event.getAction() == MotionEvent.ACTION_UP){
                if(((Long) System.currentTimeMillis() - time) > 1500){
 // if time>1.5 seconds do your code here

                    return true;
                }
            }
            return false;
        }
    });

【讨论】:

  • 非常感谢您的解释:)
  • 这对你有用吗?
  • 是的,谢谢你,我正在使用 kotlin 开发 android 应用程序,所以我转换了你发送给我的代码,它可以工作
  • @Pan Ix 好的,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-17
  • 2020-07-30
  • 2022-08-05
相关资源
最近更新 更多