¿Cómo funciona el argumento de la función OnClickListener () en Android Studio?

Gracias por A2A. Déjame que te informe sobre lo básico antes de responder a tu pregunta

Lo esencial:

En Android, todo se representa en Vistas (TextView, ImageView, etc.) y ViewGroups (LinearLayout, RelativeLayouts, etc.) que se llaman Widgets.

Todas estas clases extienden directa o indirectamente la clase View.

Método OnClick:

Ahora llegando a tu pregunta. OnClickListener es una interfaz estática que se define dentro de la clase View (de ahí View.OnClickListener ) con un método abstracto onClick (View view);

Ahora cuando decimos por ejemplo.

buttonView.setOnClickListener ()

dentro de la clase View, una implementación de la interfaz View.OnClickListener (digamos, listener ) se establece en .

Cuando se hace clic / presiona la vista (dentro de la clase View), comprueba si el oyente no es nulo. Si no es nulo, envíe el evento onclick con el objeto de vista actual.

if (oyente! = nulo) {

listener.onClick (ver)

}

donde oyente es y la vista es la vista actual en foco. El objeto de vista se proporciona para realizar cualquier acción en la vista dentro de su método onClickListener.

Avíseme si responde a su consulta.

¡Feliz codificación!

public static interface View.OnClickListener

Esta es la interfaz real en la biblioteca.

Cuando declaramos un nuevo View.OnClickListener, se refiere a la instancia que se está creando en ese momento que no tiene un valor o un nombre para identificarse explícitamente. La función que se llama es el constructor predeterminado. Las vistas son específicas para el desarrollo de Android y son solo objetos. View es la superclase (o clase Parent) de la que heredan todas las demás vistas de clase secundaria (como Button, TextView, ImageView). Tener una clase View y sus clases secundarias también le permite interactuar con su IU dentro de su código Java. Se está llamando a la parte “@override” debido a la propiedad abstracta de onClick. Cada método abstracto debe ser anulado, pase lo que pase.

La instancia así creada es parte de una clase anónima que realmente implementa la interfaz View.OnClickListener en segundo plano. Estructuralmente, no hay argumento para OnClickListener. Es la definición básica de una clase.

Es algo parecido a esto.

Supongamos que la clase anónima creada con la nueva View.OnClickListner es AnonClass.

La clase AnonClass implementa View.OnClickListener {

@Anular

public void onClick (Ver v) {

TextView txtView = (TextView) findViewById (R.id.textView);

txtView.setTextSize (55);

}

}


AnonClass obj = new AnonClass ();


b2.setOnClickListener (obj);


Eso es lo que sucede durante esta declaración.

Espero que esto haya ayudado.

View.OnClickListener

es una interfaz definida dentro de la clase View, que es la superclase de todas las vistas en Android, incluido el botón

La clase View se encarga de todos los eventos como onClick, onDrag, onLongClick, etc. y dentro de cada uno de estos eventos hay algo como esto

el evento(){
if (theEventListener! = null) {

theEventListener.theMethodDeclaredInsideit (Args);

}
}

cuando llama a Button.setOnClickListener (escucha), en realidad está colocando una referencia de su escucha en el campo EventoLista de la clase Ver, por lo que no es nulo.

Entonces, cuando el evento se desencadena en la clase View, se ejecuta el bloque if que llama al MetodoDeclaradoInsideIt del EventoLista, que es una referencia del oyente proporcionado por usted. ¡así se ejecuta su definición del método!

Espero que esto ayude

PD: mi primera respuesta. Entonces, por favor tengan paciencia conmigo.

Se necesita una función de devolución de llamada, que se llamará cada vez que se haga clic en el botón. Puede escribir una función en línea o puede consultar otra función en la misma clase para mayor claridad.

Esto te puede ayudar.

¿Cómo funcionan los oyentes de eventos de Android?