studio setonclicklistener eventos evento event crear como android button onclicklistener

eventos - Método setOnClickListener de Android: ¿cómo funciona?



set on click listener (3)

Tengo problemas para entender este código. Obtengo que findViewById obtendrá el widget del botón y luego lo findViewById . Luego, utilizará el botón para llamar al método setOnClickListener . Sin embargo, no sé cuál es ese argumento que se pasa a setOnClickListener y nunca antes había visto un código como ese. ¿Cómo es que crea un nuevo objeto pero puede crear un método propio dentro del argumento de otro método? Sería genial si alguien pudiera explicar eso. Además, ¿qué tipo de objeto está tomando 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)); } });


Esta es la mejor manera de implementar Onclicklistener para muchos botones en una fila implementa View.onclicklistener.

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

Este es un botón en el MainActivity.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_submit = (Button) findViewById(R.id.submit); bt_submit.setOnClickListener(this); }

Este es un método de anulación

@Override public void onClick(View view) { switch (view.getId()){ case R.id.submit: //action break; case R.id.secondbutton: //action break; } }


Funciona así. View.OnClickListenere está definido -

public interface OnClickListener { void onClick(View v); }

Por lo que sabemos, no puede crear una instancia de un objeto OnClickListener , ya que no tiene un método implementado. Así que hay dos formas de onClick : puede implementar esta interfaz que anulará el método onClick como este:

public class MyListener implements View.OnClickListener { @Override public void onClick (View v) { // your code here; } }

Pero es tedioso hacerlo cada vez que desee establecer un detector de clics. Entonces, para evitar esto, puede proporcionar la implementación del método en el momento, como en un ejemplo que dio.

setOnClickListener toma View.OnClickListener como su parámetro.


Lo que says manual sobre el método setOnClickListener es:

public void setOnClickListener (View.OnClickListener l)

Agregado en el nivel de API 1 Registre una devolución de llamada para invocarla 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 y youtube.com/… .