Eventos Clicks en Android

Resultado de imagen de touch mobile

Hay distintas formas de Manejar el eventos Clicks en Android:

1.- Click en XML

2.- Click en linea

3.- Click by IDS en ‘when’

 

1.- Click en XML

No aconsejable, no deberíamos tener nombre de métodos ni lógica de nuestro código en la vista. Debería ser totalmente independiente.

class ClickEventsActivity : AppCompatActivity(){
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_click_events)//<--En esta vista asignar la funcion xmlClick
    }


    //1.- Click en XML// No aconsejable -> no deberiamos tener nombre de metodos, logica de nuestro codigo, esta diseñado para la interfaz de usuario
    //Regla Obligatoria para Clicks en XMLs:
        // 1.- El método tiene que ser público
        // 2.- Los nombres tienen que coincidir
        // 3.- Recibe un solo parámetro(View)
    
    fun xmlClick(view: View){
        Toast.makeText(this,"Click by XML",Toast.LENGTH_SHORT).show()
    }

}

 

Implementacion del Botón de la vista :

    <Button
        android:id="@+id/buttonClickXML"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="32dp"
        android:text="@string/button_click_xml"
        android:onClick="xmlClick"   //<----Implementado el Click en la Vista
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

 


 

2.- Click en Linea

class ClickEventsActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_click_events)

        clickInLine()  // Se llama aqui para poder "registrarlo"
    }
    
    
    //2.- Click en linea
    private fun clickInLine(){
        val btn = findViewById<Button>(R.id.buttonClickInLine)
        btn.setOnClickListener{
            Toast.makeText(this,"Click in Line!",Toast.LENGTH_SHORT).show()
        }
    }
}

 


 

3.- Click by IDS en ‘when’

class ClickEventsActivity : AppCompatActivity(), View.OnLongClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_click_events)
        
        val btn1 = findViewById<Button>(R.id.buttonClickMulti1)
        val btn2 = findViewById<Button>(R.id.buttonClickMulti2)
        val btn3 = findViewById<Button>(R.id.buttonClickMulti3)

        btn1.setOnLongClickListener(this)
        btn2.setOnLongClickListener(this)
        btn3.setOnLongClickListener(this)
    }
    
    override fun onLongClick(view: View): Boolean {
        when(view.id){
            R.id.buttonClickMulti1 -> Toast.makeText(this,"Click Multi 1",Toast.LENGTH_SHORT).show()
            R.id.buttonClickMulti2 -> Toast.makeText(this,"Click Multi 2",Toast.LENGTH_SHORT).show()
            R.id.buttonClickMulti3 -> Toast.makeText(this,"Click Multi 3",Toast.LENGTH_SHORT).show()
        }
        return true
    }
}