Detectar un doble toque en el botón, es decir, cada vez que el usuario toca dos veces en cualquier botón, cómo se detecta y, de acuerdo con el botón, se puede agregar una respuesta correspondiente. Aquí se muestra un ejemplo en el que se detecta el doble toque en el Botón y se le agrega la respuesta correspondiente en forma de brindis.
Paso 1: crea una actividad vacía en Android Studio. Para crear uno, siga este artículo: ¿Cómo crear/iniciar un nuevo proyecto en Android Studio? . Compruebe si el idioma principal seleccionado es Kotlin.
Paso 2: en activity_main.xml, agregue un botón que detectará el doble toque.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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"> <!--Declare a button which shall be used to detect double taps--> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Double Tap" /> </RelativeLayout>
Paso 3: en este paso, agregue la clase abstracta para el doble toque y configure onClickListener que usará la clase abstracta. y mostrar el brindis. A continuación se muestra el código de la clase MainActivity.kt.
Kotlin
package org.geeksforgeeks.doubletap_onbutton import android.os.Bundle import android.view.View import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declare the button from the layout file as Text View // Since the method works only on Views val dBtn = findViewById<TextView>(R.id.btn) // Implementing a DoubleClickListener on the Button dBtn.setOnClickListener(object : DoubleClickListener() { override fun onDoubleClick(v: View?) { Toast.makeText(applicationContext,"Double Click",Toast.LENGTH_SHORT).show() } }) } // This class has methods that check if two clicks were registered // within a span of DOUBLE_CLICK_TIME_DELTA i.e., in our case // equivalent 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 } } }
Salida en el emulador:
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA