¿Cómo habilitar/deshabilitar el detector de clics en las vistas en Android?

A veces, cuando nos encontramos con una situación en la que no necesitamos hacer clic en algunas vistas en las que se puede hacer clic. Por ejemplo, si el usuario no completa los datos obligatorios, entonces en esa situación es muy útil tener un control de clics sobre nuestras vistas. Entonces, en este artículo, aprenderemos cómo deshabilitar/habilitar el oyente de clics en las vistas en Android.

 Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Cree un nuevo proyecto en Android Studio en Kotlin .

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

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">
  
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/ic_geeksforgeeks"
        app:layout_constraintBottom_toTopOf="@+id/tvMain"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
    <TextView
        android:id="@+id/tvMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enable/Disable"
        android:textColor="#7CB342"
        android:textSize="20dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.303" />
  
    <Button
        android:id="@+id/btnMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="View"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvMain" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Nota : También hemos incluido imágenes vectoriales en la carpeta dibujable, si desea utilizar ImageView, también debe agregar una imagen vectorial.

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

package com.ayush.gfg_exit
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    lateinit var tvMain : TextView
    lateinit var btnView : Button
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        tvMain = findViewById(R.id.tvMain)
        btnView = findViewById(R.id.btnMain)
  
        btnView.setOnClickListener {
            Toast.makeText(this,"clicked",Toast.LENGTH_SHORT).show()
        }
          
        // btnView is initially enabled(true).
        // clicking tvMain each time, 
          // btnView.isEnalbed will toggles.
        tvMain.setOnClickListener {
            btnView.isEnabled = !(btnView.isEnabled)
        }
    }
  
}

Producción:

Publicación traducida automáticamente

Artículo escrito por ayushpandey3july y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *