Android – método setOnClickListener cómo funciona?
Tengo problemas para entender este código. Tengo sombrero findViewById obtendrá el widget de botón y luego lo lanzará. Entonces va a usar el btn para llamar al método setOnClickListener. Sin embargo no sé cuál es ese argumento que es pasado en el setOnClickListener y nunca he visto el código como eso antes. ¿Cómo es que crea un nuevo objeto pero es capaz de crear un método propio dentro del argumento de otro método? Sería genial si alguien puede explicar eso. Además, ¿qué tipo de objeto tiene el método setOnClickListener?
btn = (Button)findViewById(R.id.firstButton); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv.setText(months[rand.nextInt(12)]); tv.setTextColor(Color.rgb(rand.nextInt(255)+1, rand.nextInt(255)+1, rand.nextInt(255)+1)); } });
- Agregue el listener de clics al Generic RecyclerView Adapter
- Usando un bucle para establecer los botones enclicklistener
- Acceder a objetos personalizados en una vista de lista
- OnItemClickListener y OnClickListener no funcionan para ListView
- El clic de listitem personalizado no activa listview.onclicklistener
- Android - Gridview con Custom BaseAdapter, crear onclicklistener
- Cómo hacer algo después de que el usuario haga clic en mi EditText
- ¿Por qué no AsyncTasks siempre funcionan dentro de un onClickListener?
- SetOnItemClickListener VS setOnItemSelectedListener en ListView.
- Android OnClickListener no disparar para el botón en Layout independiente
- Cómo combinar OnClickListener y OnTouchListener para un ImageButton
- SetOnClickListener y setOnLongClickListener llamada en cuestión de botón único
- Vibrar onclick
Funciona así. View.OnClickListenere se define –
public interface OnClickListener { void onClick(View v); }
Por lo que sabemos que no se puede instanciar un objeto OnClickListener
, ya que no tiene un método implementado. Así que hay dos maneras en que puede pasar: puede implementar esta interfaz que reemplazará el método onClick
siguiente manera:
public class MyListener implements View.OnClickListener { @Override public void onClick (View v) { // your code here; } }
Pero es tedioso hacerlo cada vez que desea establecer un oyente de clics. Así que para evitar esto se puede proporcionar la implementación del método en el lugar, al igual que en un ejemplo que dio.
setOnClickListener
toma View.OnClickListener
como su parámetro.
Que lo que el manual dice acerca del método setOnClickListener
es:
public void setOnClickListener (View.OnClickListener l)
Se agrega en el nivel 1 de la API. Registre una devolución de llamada para que se invoque cuando se haga clic en esta vista. Si esta vista no se puede hacer clic, se puede hacer clic.
Parámetros
L View.OnClickListener: La devolución de llamada que se ejecutará
Y normalmente tienes que usarlo así
public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... }
Echa un vistazo a esta lección así Construir una Calculadora Simple usando Android Studio .
- ¿Cómo envío un archivo csv / texto desde un teléfono Android a una impresora wifi?
- GreenDao freemaker.jar está ausente