Una pulsación prolongada se refiere a presionar un botón físico o tocar un botón virtual en una pantalla táctil y mantenerlo presionado durante uno o dos segundos. Empleado en pantallas táctiles, teléfonos inteligentes, tabletas y relojes inteligentes, la pulsación prolongada o el toque prolongado aumentan la flexibilidad de la interfaz de usuario. La típica “pulsación corta” o “toque corto” realiza una operación, mientras que presionar/tocar y mantener presionado ese mismo botón por un corto tiempo activa otra. Una pulsación prolongada le permite obtener información, descargar fotos de la web, editar imágenes y más.
¿Dónde podemos usar esta característica?
Como se mencionó, se puede usar una presión prolongada para muchas aplicaciones, algunas se enumeran a continuación:
- Obtener información
- Descargar fotos
- Editar imágenes
- Operaciones de copiar, cortar y pegar en la vista de texto
A través de este artículo, queremos ampliar nuestro conocimiento sobre la pulsación prolongada de un botón , así como una vista como TextView en Android . Hemos implementado un método que detectaría una pulsación prolongada durante un tiempo determinado y, si se cumplen los criterios, se generaría un brindis .
Pulsación larga en un botón
Para detectar una pulsación larga en un botón en Android, sigue los siguientes pasos:
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Vaya al archivo activity_main.xml que representa la interfaz de usuario de la aplicación y cree un botón que al presionar prolongadamente generaría un brindis. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--This button has to be long-clicked--> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="hold" /> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt
Kotlin
import android.os.Bundle import android.widget.Button 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 a button val mBtn = findViewById<Button>(R.id.btn) // implement a setOnLongClickListener to the // button that creates a Toast and // returns true when actually long-pressed mBtn.setOnLongClickListener { Toast.makeText(applicationContext, "Button Long Pressed", Toast.LENGTH_SHORT).show() true } } }
Salida: ejecutar en el emulador
Pulsación larga en una vista
Para detectar una pulsación larga en una pantalla en Android, sigue los siguientes pasos:
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación. activity_main.xml (suponiendo que cada nuevo proyecto crea una vista de texto en el diseño de forma predeterminada)
Paso 2: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt
Kotlin
import android.os.Bundle import android.view.GestureDetector import android.view.GestureDetector.SimpleOnGestureListener import android.view.MotionEvent 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) // Do Nothing } // GestureDetecctor to detect long press private val gestureDetector = GestureDetector(object : SimpleOnGestureListener() { override fun onLongPress(e: MotionEvent) { // Toast to notify the Long Press Toast.makeText(applicationContext, "Long Press Detected", Toast.LENGTH_SHORT).show() } }) // onTouchEvent to confirm presence of Touch due to Long Press override fun onTouchEvent(event: MotionEvent?): Boolean { return gestureDetector.onTouchEvent(event) } }
Salida: ejecutar 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