Double-Tap on a View in Android - GeeksforGeeks

18 Feb, 2021
Detecting a double tap i.e. whenever the user double taps on any view how it is detected and according to the view a response can be added corresponding to it. Here an example is shown in which the double tap on the view is detected and corresponding to it a response is added in the form of toast.
Step 1: Create an Empty activity in Android Studio. To create one, follow this article- https://www.geeksforgeeks.org/android-how-to-create-start-a-new-project-in-android-studio/. Check if the primary language selected is Kotlin.
Step 2: No change is done in activity_main.xml. Since already a textview is present so the response for the double tap is added with it.
XML
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">      <TextView        android:id="@+id/tvView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintLeft_toLeftOf="parent"        app:layout_constraintRight_toRightOf="parent"        app:layout_constraintTop_toTopOf="parent" />  </androidx.constraintlayout.widget.ConstraintLayout>
Step 3: In this step add the abstract class for the double tap and set the onClickListener which will use the abstract class. Below is the code for the MainActivity.kt class.
Kotlin
package org.geeksforgeeks.viewdoubletap  import android.os.Bundleimport android.view.Viewimport android.widget.TextViewimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivity    class MainActivity : AppCompatActivity() {        override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)          // In our case, we tap on Text View        val view = findViewById<TextView>(R.id.tvView)          // Double Click Listener implemented on the Text View        view.setOnClickListener(object : DoubleClickListener() {            override fun onDoubleClick(v: View?) {                Toast.makeText(applicationContext,"Double Click",Toast.LENGTH_SHORT).show()            }        })        }      // Abstract class defining methods to check Double Click where Time Delay     // between the two clicks is set to 300 ms    abstract class DoubleClickListener : View.OnClickListener {        var lastClickTime: Long = 0        override fun onClick(v: View?) {            val clickTime = System.currentTimeMillis()            if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA) {                onDoubleClick(v)            }            lastClickTime = clickTime        }          abstract fun onDoubleClick(v: View?)          companion object {            private const val DOUBLE_CLICK_TIME_DELTA: Long = 300 //milliseconds        }    }}
android
Android-View
Android
Kotlin
Android
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Broadcast Receiver in Android With Example
How to Create and Add Data to SQLite Database in Android?
Services in Android with Example
Content Providers in Android with Example
Android RecyclerView in Kotlin
Broadcast Receiver in Android With Example
Services in Android with Example
Content Providers in Android with Example
Android RecyclerView in Kotlin