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

如何检测android中按钮的双击事件

吴开宇
2023-03-14

我有:我在水平滚动视图中有一组按钮

我想要的:我想要在双击按钮时检测事件

注意通常我处理点击事件使用类实现Onclicklistener.但是现在我怎么能实现同样的双击。如果有任何界面我也可以用于此目的,这将是有帮助的

<HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/button1"
                android:layout_width="200dp"
                android:layout_height="150dp"
                android:text="Song1" />

            <Button
                android:id="@+id/button2"
                android:layout_width="200dp"
                android:layout_height="150dp"
                android:text="Song2" />

            <Button
                android:id="@+id/button3"
                android:layout_width="200dp"
                android:layout_height="150dp"
                android:text="Song3" />
        </LinearLayout>
    </HorizontalScrollView>

共有3个答案

漆雕伟志
2023-03-14

我用这个独奏:

    var doubleTap = false
    your_button.setOnClickListener {
        if (doubleTap)
            handleClick(it.context)
        doubleTap = true
        Handler(Looper.getMainLooper()).postDelayed({
            doubleTap = false
        }, 1500)
    }

您可以在两步退出应用程序的onBackPress活动中使用此技巧。

祝你好运

东云
2023-03-14

这里有一个极好的答案:

单击和双击Android中的按钮

然而,我建议使用OnLongPress事件,这是谷歌推荐的。

请在此处查看该API:

http://developer.android.com/reference/android/view/View.OnLongClickListener.html

干杯

莫翰藻
2023-03-14

这是对我有用的东西,

注意:它只适用于双击,不能处理单击

// Define 2 global class variables
private static long LAST_CLICK_TIME = 0;
private final int mDoubleClickInterval = 400; // Milliseconds

// Then, inside onClick method of Button
long doubleClickCurrentTime = System.currentTimeMillis();
long currentClickTime = System.currentTimeMillis();
if (currentClickTime - LAST_CLICK_TIME <= mDoubleClickInterval)
{
    Toast.makeText(this, "Double click detected", Toast.LENGTH_SHORT).show();
}
else
{
    LAST_CLICK_TIME = System.currentTimeMillis();
    // !Warning, Single click action problem
}
 类似资料:
  • 在我的应用程序中,我有一个按钮。单击和双击按钮后,将执行单独的操作。我该怎么做?谢谢

  • 问题内容: 因此,我进行了一些研究,并在代码中将按钮定义为对象之后 这是我的问题 那你的活动… 问题: 当我输入“ this”时,它说: 我不知道为什么? 这是.java文件中的代码 问题答案: View中的SetOnClickListener(Android.View.view.OnClickListener)无法应用于(com.helloandroidstudio.MainActivity)

  • 下面是.java文件中的代码

  • 问题内容: 我对javascript不太熟悉,但是我认为这是实现我的目标的最佳方法。如果没有,请纠正我。 我最后有一个许可证文本2按钮。所有这些都是用HTML编写的,因为许可证中有一些链接。现在,我希望当用户单击中的“确定”按钮时,这会触发一些我可以在Java中抓取的JavaScript或侦听器以触发应用程序中的前进。(“取消”按钮的作用相反,但是如果我知道一种方法,我可以做另一种。) 这会给某人

  • 我的WPF-App的主窗口上有许多按钮。这些按钮的命令应该具有相同的实现/功能,但根据按下的按钮,函数访问的文件/路径会发生变化。如何在不使用按钮单击事件处理程序(Windows表单)的情况下检测从ViewModel单击了哪个按钮? 下面是类RelayCommand的实现: 以下是ViewModel中命令的代码:

  • 问题内容: 是否可以使用浏览器中的“历史记录后退”按钮检测到用户进入了页面?最好是我想使用angular.js检测到此动作。 我不想使用角度布线。如果用户提交表单,并且在成功提交到服务器并进行重定向之后,它也应该起作用,如果用户使用浏览器的“后退”按钮返回到表单,则也应该是可行的。 问题答案: 这是Angular的解决方案。 我正在使用运行块来启动它。首先,我将实际位置存储在$ rootScope