View.OnClickListener, el método o la clase?
Lo siento si esta pregunta es estúpida, pero no puedo envolver mi cabeza alrededor de la sintaxis de Java .. He aprendido C / C ++
Sé que View es una clase que es buena .. pero no entiendo si View.OnClickListener () es un método.
Lo dudo a menos que devuelva un objeto?
Creo que View es una clase que tiene un objeto miembro de OnClickListener estático .. de nuevo que no tiene sentido para mí ..
¿Puede alguien explicar lo que está sucediendo con esta línea de código?
button1 = (Button) findByView(R.id.button1) ; button1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { } }
Entonces, ¿qué está pasando con este código?
- Error al construir un proyecto Android de Cordova
- ¿Trabajando sobre las propiedades de los objetos en una lista?
- ¿Cómo guardar y reutilizar la misma instancia de fragmentos?
- Utilizando Paint.setStrokeJoin () y Paint.setStrokeMiter ()
- Dónde almacenar hashes, sales, claves en Aplicaciones de Escritorio
Button1
es una referencia al objeto button1 en el archivo xml.
button1
objeto button1
tiene un objeto miembro setOnClickListener
que yo, desde su nombre, supongo que inicializa un evento al botón o algo. Pero recibe el objeto View.OnClicListener()
.
Estoy confundido por que .. onClick recibe un objeto View para onClickListener
no es un objeto devuelve un objeto View? No lo entiendo en absoluto.
¿Puede alguien explicar lo que sucede en esa línea View.onClickListener()
es otra forma de decir new this
?
- Android Intent Context Confusing
- MultipartEntityBuilder para enviar imágenes al servidor de carril
- ¿Comprueba si el dispositivo Android recibe video de 4K?
- Error de compilación de Android; Java plugin se ha aplicado, no es compatible con Android
- Diferentes formas de publicar valores json en Server
- Cómo compartir el diseño IDE en IntelliJ IDEA?
- Java.lang.NullPointerException en android.support.v7.widget.RecyclerView.onMeasure
- ¿Por qué el AsyncTask de mi servicio bloquea AsyncTasks de la actividad principal?
View.OnClickListener
es una interfaz , no la llamas, pero crea una nueva instancia de ella ( new View.OnClickListener()
es una llamada al constructor)
La instancia que se crea es de clase anónima que implements
View.OnClickListener
, en los corchetes justo debajo de new View.OnClickListener()
Cualquier clase que implemente View.OnClickListener
debe implementar los métodos declarados en él (por ejemplo, onClick )
setOnClickListener
sólo guarda la referencia a la instancia de View.OnClickListener suministrada, y cuando alguien hace clic en el botón, se onClick
método onClick
del oyente que estableció.
OnClickListener es una interfaz. Una interfaz proporciona un conjunto de métodos que otras clases pueden implementar. http://download.oracle.com/javase/tutorial/java/concepts/interface.html
Usted podría tener otra clase (como y adaptador), que extiende OnClickListener, entonces su clase de adaptador podría agregar el método "OnClick (View v)", y también sería capaz de manejar eventos Click. O puede usar el código que publicó, donde acaba de crear una clase anónima, que implementa OnClickListener.
-Leñoso
El código de Android está orientado a respuestas basadas en eventos. El bloque de código es el siguiente:
Busca un botón que hayas añadido al diseño activo y asignalo a una variable local:
button1 = (Button) findByView(R.id.button1);
Establezca el oyente de clic en el botón. Esta es una clase que se invocará cuando el botón registre un evento. La clase se construye aquí, es anónimo, ya que no se asigna a una variable, pero Android se mantendrá al tanto de la referencia.
Los eventos de botón siempre se deben a que se presiona, por lo que cuando el botón registra que se ha presionado, informará a la clase onClickListener que incluso se produjo, y pasar a sí mismo como la vista. El onClickListener se construye como:
new View.OnClickListener() { public void onClick(View v) { } }
Ese método onClick es utilizado por el oyente para manejar el evento (en este caso, presionar un botón). Por lo tanto, usted pondría el código que le gustaría ejecutar en ese método.
Para responder a su pregunta directamente, onClickListere es una clase anónima que define el método onClick, que manejará eventos de botón.
- Ejecutar otro AsyncTask en onPostExecute ()
- Recursos $ NotFoundException: Resource ID # 0x0 en AlertDialog