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

时间:2015-02-23 18:18:23

标签: android

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

我想要的是什么:我想在双击按钮时检测到一个事件

注意通常我使用class implements Onclicklistener处理点击事件。但是现在我怎么能在doubleclickevents中实现同样的目标。如果有任何可以用于此目的的界面

,将会很有帮助

CODE:

<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>

4 个答案:

答案 0 :(得分:0)

这里有一个很好的答案:

Single click and double click of a button in android

但是,我建议使用OnLongPress事件,这是Google推荐的事件。

在此处查看该API:

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

干杯

答案 1 :(得分:0)

这里有什么对我有用,

注意:它只适用于双击,它无法处理单击和放大;单击双击动作

// 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
}

答案 2 :(得分:0)

我使用这种方法:

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

您可以在onBackPress Activity中使用此技巧在两个步骤中退出应用程序。

祝你好运

答案 3 :(得分:0)

project.assets.json