当前位置: 首页 > 知识库问答 >
问题:

java android中的双击问题

师俊健
2023-03-14

我已经为双击创建了一个Java类,但是我不能双击该项目,因为当我只单击一次时,该项目不会等待双击!

双击类代码

package com.programiner.studyvillaadmin.Classes.Listener;

import android.view.View;

public abstract class DoubleClickListener implements View.OnClickListener {

    private static final long DOUBLE_CLICK_TIME_DELTA = 300;//milliseconds

    long lastClickTime = 0;

    @Override
    public void onClick(View v) {
        long clickTime = System.currentTimeMillis();
        if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA){
            onDoubleClick(v);
            lastClickTime = 0;
        } else {
            onSingleClick(v);
        }
        lastClickTime = clickTime;
    }

    public abstract void onSingleClick(View v);
    public abstract void onDoubleClick(View v);
}

共有1个答案

芮承运
2023-03-14
private long mLastClickTime = 0;
    @Override
    public void onClick(View v) {
        if (SystemClock.elapsedRealtime() - mLastClickTime < 1000) //*1000 is time to perform second click*
            return; *// return when second click happen in second*
        mLastClickTime = SystemClock.elapsedRealtime();
        GameSound.getInstance(getApplicationContext()).sound__(GameSound.buttonClick);

        if (v == findViewById(R.id.tvUsername)) {
            StartActivity(UserProfile.class);
        }
    }

例子

public long mLastClickTime=0 //声明和定义公共

holder.itemView.setOnClickListener(new View.OnClickListener() {  //click lister of itemview of RV Adapter
                            @Override
                            public void onClick(View v) {
                                if (SystemClock.elapsedRealtime() - mLastClickTime < 1000) //*1000 is time to perform second click*
                                    return; // return when second click happen in second*
                                mLastClickTime = SystemClock.elapsedRealtime();

                                //do stuff here...
                            }
                        });

 类似资料:
  • 问题内容: 我有一个简单的代码,单击链接即可打开一个新窗口。但是在执行脚本时,单击相当于双击同一元素,并打开2个窗口。 我正在使用InternetExplorer驱动程序 问题答案: 当你一起工作 , 用 ,您可以考虑通过传递以下配置属性 类别: :由于InternetExplorerDriver仅适用于Windows,因此它尝试使用所谓的“本机”或OS级事件在浏览器中执行鼠标和键盘操作。这与对相

  • 在我的应用程序中,我有一个按钮。单击和双击按钮后,将执行单独的操作。我该怎么做?谢谢

  • 问题内容: 我在论坛上搜索并看到以下代码: 但是代码运行不正确(有时会打印出“并且单击一次!” 2次。应该打印出“并且双击!”)。有人可以告诉我为什么吗?还是可以给我一些更好的方法呢?谢谢! 问题答案: 有时它会打印出“并且只需单击一次!” 2次 。它应该打印出“,这是双击!”)。 那是正常的。仅当您在指定的时间间隔内单击两次时,才会发生双击。因此,有时如果单击速度不够快,您将连续获得两次单击。

  • 问题内容: 默认情况下,事件一键启动。我有一个,但我想从双击开始。可能吗? 问题答案: 我相信您可以从MouseEvent中提取点击计数(假设其名为e) 试试这个

  • 问题内容: 有人能想到一种忽略Java双击附带的单击的好方法吗? 我希望每种行为都有不同的行为,例如: 单击可在点击点上绘制十字准线 双击选择屏幕上的对象,但应该 不是 搽点击点十字线 …有人能想到一种方法吗?某种计时器设置可能是?一个想法赞赏:-) <免责声明> …而且是的,我知道我正在犯一个最令人发指的可用性/ UI伪装。 问题答案: 实际上,您需要在MouseAdapter的重写mouseC

  • 我也尝试过使用KeyboardShouldPersistTaps=Handled,但我仍然必须在自定义按钮上点击两次才能执行一个操作。谁能告诉我,我在代码中做错了什么? 谢了。